PHP Classes

How to Use a PHP MVC Framework to Develope PHP Web Applications Using the Package Catalyst: Framework to develop MVC-based PHP applications

Recommend this page to a friend!
     
  Info   Example   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2025-06-13 (Less than 1 hour ago) RSS 2.0 feedNot yet rated by the usersTotal: Not yet counted Not yet ranked
Version License PHP version Categories
catalyst 1.0MIT/X Consortium ...7.1Libraries, Design Patterns, PHP 7
Description 

Authors

Walter Nuñez
Catalyst Community


Contributor

This package can framework to develop MVC-based PHP applications.

It provides several classes to implement different aspects of a PHP Web application.

Currently, it provides:

- Process argument parameters

- Access databases using PDO

- Process Web and API requests and generate responses

- Send email from templates

- Process requests routing to controllers

- Manage session variables

- Generate views from layouts

- Etc.

Picture of Francisco Núñez
  Performance   Level  
Name: Francisco Núñez <contact>
Classes: 7 packages by
Country: Panama Panama
Age: 38
All time rank: 36783 in Panama Panama
Week rank: 46 Up1 in Panama Panama Up
Innovation award
Innovation award
Nominee: 2x

Instructions

Please read this document to learn how to install and use this PHP MVC framework.

Example

<?php

declare(strict_types=1);

/**************************************************************************************
 *
 * Catalyst PHP Framework
 * PHP Version 8.3 (Required).
 *
 * @package Catalyst
 * @subpackage Public
 * @see https://github.com/arcanisgk/catalyst
 *
 * @author Walter Nuñez (arcanisgk/original founder) <[email protected]>
 * @copyright 2023 - 2025
 * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
 *
 * @note This program is distributed in the hope that it will be useful
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * @category Framework
 * @filesource
 *
 * @link https://catalyst.dock Local development URL
 *
 */

use Catalyst\Framework\Core\Argument\Argument;
use
Catalyst\Kernel;

require_once
realpath(implode(DIRECTORY_SEPARATOR, [dirname(__FILE__), '..', '..', 'vendor', 'autoload.php']));

// Bootstrap the application
$app = new Kernel();

try {
   
$app->bootstrap();

   
// Parse command line arguments
   
$args = new Argument();

   
// Register commands
    // Format: command:action => [handler class, method]
   
$commands = [];

   
// Get the command from arguments
   
$command = $args->getCommand();

    if (empty(
$command)) {
       
// List available commands if none specified
       
echo "Available commands:\n";
        foreach (
array_keys($commands) as $cmd) {
            echo
" $cmd\n";
        }
        echo
"\nUse 'php cli.php command --help' for more information on a command.\n";
        exit(
0);
    }

   
// Execute the command if registered
   
if (isset($commands[$command])) {
        [
$handlerClass, $method] = $commands[$command];
       
$handler = new $handlerClass();
       
$handler->$method($args);
    } else {
        echo
"Unknown command: $command\n";
        echo
"Use 'php cli.php' to see available commands.\n";
        exit(
1);
    }

} catch (
Exception $e) {
    echo
'Error: ' . $e->getMessage() . NL;
    exit(
1);
}


Details

Catalyst PHP Framework

Catalyst is a modern PHP framework designed with flexibility, performance, and developer experience in mind. It combines established architectural patterns with pragmatic solutions to create a robust foundation for PHP applications.

Overview

Catalyst is a PHP framework developed by Walter Nuñez (arcanisgk) that combines the best aspects of various architectural patterns to create a flexible yet powerful development environment. The framework requires PHP 8.3 and is distributed under the MIT License.

Philosophy

Catalyst is built on several key principles:

  1. Practical Flexibility - Use the right pattern for the right job, rather than forcing a single approach
  2. Separation of Concerns - Clear boundaries between components with single responsibilities
  3. Developer-First Experience - Intuitive APIs and comprehensive error handling
  4. Framework/Application Separation - Clear distinction between framework internals and application code

Architecture

Dual-Space Design

Catalyst uses a dual-space architecture that explicitly separates framework code from application code:

  • Framework Space (`app/Assets/Framework/`) - Contains core framework components, not intended for direct modification
  • Application Space (`app/Repository/`) - Dedicated development area for application-specific code

This separation allows for framework updates without disrupting application code, while still providing all the extension points needed for customization.

Mixed-Pattern Implementation

Unlike frameworks that rigidly adhere to a single pattern, Catalyst strategically employs multiple architectural patterns where they make the most sense:

  • MVC Pattern - For structured request handling and response generation
  • Repository Pattern - For data access abstraction
  • Entity Pattern - For domain object encapsulation
  • Service Pattern - For reusable business logic
  • Singleton Pattern - For services that genuinely need global state

This mixed approach allows developers to use familiar patterns while avoiding their limitations.

Internationalization

Catalyst provides built-in support for multi-language applications:

  • JSON-based translation files organized by language and feature
  • Simple translation helpers (`t()` and `__()`)
  • Language switching capabilities

Error Management

The framework includes a comprehensive error management system:

  • Detailed error reporting in development environments
  • Production-safe error handling
  • Customizable error logging and display

Key Components

Core Framework

  • Routing System - Flexible URL-to-controller mapping with middleware support
  • View Engine - Template rendering with layouts and partials
  • Response Handling - Type-specific responses (HTML, JSON, redirects)
  • Middleware Stack - Modular request processing pipeline

Utility Layer

  • Logging - Type-categorized logging with formatting support
  • Debugging - Development tools for inspection and troubleshooting
  • File Operations - Simplified file system interactions
  • CLI Support - Command-line interface with dedicated entry point

Getting Started

Requirements

  • PHP 8.3 or higher
  • Composer
  • Web server with URL rewriting capability (Apache, Nginx)

Installation

composer create-project arcanisgk/catalyst my-project
cd my-project

Basic Usage

  1. Define routes in `bootstrap/routes/web.php`
  2. Create controllers in `app/Repository/Controllers`
  3. Add views in `app/Repository/Views`
  4. Run your application through a web server pointing to the `public` directory

Development Roadmap

  • Enhanced database abstraction layer
  • Advanced middleware capabilities
  • Expanded CLI tools
  • Extended documentation and tutorials

License

Catalyst is open-sourced software licensed under the MIT License.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

For documentation and more information, visit catalyst.lh-2.net.


  Files folder image Files (176)  
File Role Description
Files folder imageapp (1 file, 1 directory)
Files folder imagebootstrap (6 directories)
Files folder imagecache (1 file, 1 directory)
Files folder imagelogs (1 directory)
Files folder imagepublic (6 files, 1 directory)
Files folder imagetest (1 file)
Accessible without login Plain text file .env Data Auxiliary data
Accessible without login Plain text file .env.example Data Auxiliary data
Accessible without login Plain text file .env.production Data Auxiliary data
Accessible without login Plain text file ARCHITECTURE.md Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file directory.txt Doc. Documentation
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file README.md Doc. Documentation
Accessible without login Plain text file tree.txt Doc. Documentation

  Files folder image Files (176)  /  app  
File Role Description
Files folder imageAssets (4 directories)
  Plain text file Kernel.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  
File Role Description
Files folder imageFramework (2 directories)
Files folder imageHelpers (7 directories)
Files folder imageLocale (2 directories)
Files folder imageSolution (2 directories)

  Files folder image Files (176)  /  app  /  Assets  /  Framework  
File Role Description
Files folder imageCore (1 file, 12 directories)
Files folder imageTraits (2 files)

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  
File Role Description
Files folder imageArgument (1 file)
Files folder imageDatabase (5 files)
Files folder imageExceptions (6 files)
Files folder imageHttp (2 files)
Files folder imageMail (5 files)
Files folder imageMiddleware (9 files)
Files folder imageProviders (2 files)
Files folder imageResponse (5 files)
Files folder imageRoute (6 files)
Files folder imageSession (2 files)
Files folder imageTranslation (3 files)
Files folder imageView (4 files)
  Plain text file UrlGenerator.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  /  Argument  
File Role Description
  Plain text file Argument.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  /  Database  
File Role Description
  Plain text file Connection.php Class Class source
  Plain text file ConnectionTester.php Class Class source
  Plain text file DatabaseManager.php Class Class source
  Plain text file QueryBuilder.php Class Class source
  Plain text file Transaction.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  /  Exceptions  
File Role Description
  Plain text file ConnectionException.php Class Class source
  Plain text file FileSystemException.php Class Class source
  Plain text file MailException.php Class Class source
  Plain text file MethodNotAllowedException.php Class Class source
  Plain text file QueryException.php Class Class source
  Plain text file RouteNotFoundException.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  /  Http  
File Role Description
  Plain text file ApiRequest.php Class Class source
  Plain text file Request.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  /  Mail  
File Role Description
  Plain text file DkimGenerator.php Class Class source
  Accessible without login Plain text file MailAttachment.php Aux. Configuration script
  Plain text file MailManager.php Class Class source
  Plain text file MailMessage.php Class Class source
  Plain text file MailTemplate.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  /  Middleware  
File Role Description
  Plain text file BasicAuthMiddleware.php Class Class source
  Plain text file CallableMiddleware.php Class Class source
  Plain text file CoreMiddleware.php Class Class source
  Plain text file CsrfMiddleware.php Class Class source
  Plain text file DebugMiddleware.php Class Class source
  Plain text file MiddlewareInterface.php Class Class source
  Plain text file MiddlewareStack.php Class Class source
  Plain text file RequestThrottlingMiddleware.php Class Class source
  Plain text file SecurityHeadersMiddleware.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  /  Providers  
File Role Description
  Plain text file TranslationServiceProvider.php Class Class source
  Plain text file ViewServiceProvider.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  /  Response  
File Role Description
  Plain text file HtmlResponse.php Class Class source
  Plain text file JsonResponse.php Class Class source
  Plain text file RedirectResponse.php Class Class source
  Plain text file Response.php Class Class source
  Plain text file ViewResponse.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  /  Route  
File Role Description
  Plain text file Route.php Class Class source
  Plain text file RouteCollection.php Class Class source
  Plain text file RouteCompiler.php Class Class source
  Plain text file RouteDispatcher.php Class Class source
  Plain text file RouteGroup.php Class Class source
  Plain text file Router.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  /  Session  
File Role Description
  Plain text file FlashMessage.php Class Class source
  Plain text file SessionManager.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  /  Translation  
File Role Description
  Plain text file TranslationCache.php Class Class source
  Plain text file TranslationManager.php Class Class source
  Plain text file TranslationService.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Core  /  View  
File Role Description
  Plain text file LayoutManager.php Class Class source
  Plain text file ViewFactory.php Class Class source
  Plain text file ViewFinder.php Class Class source
  Plain text file ViewRenderer.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Framework  /  Traits  
File Role Description
  Plain text file OutputCleanerTrait.php Class Class source
  Plain text file SingletonTrait.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Helpers  
File Role Description
Files folder imageConfig (1 file)
Files folder imageDebug (6 files)
Files folder imageError (6 files)
Files folder imageIO (1 file)
Files folder imageLog (1 file)
Files folder imageSecurity (2 files)
Files folder imageToolBox (1 file)

  Files folder image Files (176)  /  app  /  Assets  /  Helpers  /  Config  
File Role Description
  Plain text file ConfigManager.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Helpers  /  Debug  
File Role Description
  Plain text file Dumper.php Class Class source
  Plain text file DumperCollapsible.php Class Class source
  Plain text file DumperColorizer.php Class Class source
  Plain text file DumperConfig.php Class Class source
  Plain text file DumperFormatter.php Class Class source
  Plain text file DumperRenderer.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Helpers  /  Error  
File Role Description
  Plain text file BugCatcher.php Class Class source
  Plain text file BugLogger.php Class Class source
  Plain text file BugOutput.php Class Class source
  Plain text file ErrorHandler.php Class Class source
  Plain text file ExceptionHandler.php Class Class source
  Plain text file ShutdownHandler.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Helpers  /  IO  
File Role Description
  Plain text file FileOutput.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Helpers  /  Log  
File Role Description
  Plain text file Logger.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Helpers  /  Security  
File Role Description
  Plain text file Crypt.php Class Class source
  Plain text file CsrfProtection.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Helpers  /  ToolBox  
File Role Description
  Plain text file DrawBox.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Locale  
File Role Description
Files folder imageen (5 files)
Files folder imagees (5 files)

  Files folder image Files (176)  /  app  /  Assets  /  Locale  /  en  
File Role Description
  Accessible without login Plain text file auth.json Data Auxiliary data
  Accessible without login Plain text file common.json Data Auxiliary data
  Accessible without login Plain text file contact.json Data Auxiliary data
  Accessible without login Plain text file home.json Data Auxiliary data
  Accessible without login Plain text file profile.json Data Auxiliary data

  Files folder image Files (176)  /  app  /  Assets  /  Locale  /  es  
File Role Description
  Accessible without login Plain text file auth.json Data Auxiliary data
  Accessible without login Plain text file common.json Data Auxiliary data
  Accessible without login Plain text file contact.json Data Auxiliary data
  Accessible without login Plain text file home.json Data Auxiliary data
  Accessible without login Plain text file profile.json Data Auxiliary data

  Files folder image Files (176)  /  app  /  Assets  /  Solution  
File Role Description
Files folder imageControllers (5 files)
Files folder imageViews (2 directories)

  Files folder image Files (176)  /  app  /  Assets  /  Solution  /  Controllers  
File Role Description
  Plain text file AuthenticationController.php Class Class source
  Plain text file ConfigController.php Class Class source
  Plain text file ContactController.php Class Class source
  Plain text file Controller.php Class Class source
  Plain text file HomeController.php Class Class source

  Files folder image Files (176)  /  app  /  Assets  /  Solution  /  Views  
File Role Description
Files folder imageConfig (1 file, 1 directory)
Files folder imageHome (2 files)

  Files folder image Files (176)  /  app  /  Assets  /  Solution  /  Views  /  Config  
File Role Description
Files folder imageSections (6 files)
  Accessible without login Plain text file index.php Aux. Configuration script

  Files folder image Files (176)  /  app  /  Assets  /  Solution  /  Views  /  Config  /  Sections  
File Role Description
  Accessible without login Plain text file app.php Aux. Configuration script
  Accessible without login Plain text file db.php Aux. Configuration script
  Accessible without login Plain text file ftp.php Aux. Configuration script
  Accessible without login Plain text file mail.php Example Example script
  Accessible without login Plain text file session.php Aux. Configuration script
  Accessible without login Plain text file tools.php Example Example script

  Files folder image Files (176)  /  app  /  Assets  /  Solution  /  Views  /  Home  
File Role Description
  Accessible without login Plain text file index.php Aux. Configuration script
  Accessible without login Plain text file landing.php Aux. Configuration script

  Files folder image Files (176)  /  bootstrap  
File Role Description
Files folder imagebin (1 file)
Files folder imageconfig (1 directory)
Files folder imageconstant (2 files)
Files folder imageloaders (7 files, 1 directory)
Files folder imageroutes (3 files)
Files folder imagetemplate (3 directories)

  Files folder image Files (176)  /  bootstrap  /  bin  
File Role Description
  Accessible without login Plain text file index.php Example Example script

  Files folder image Files (176)  /  bootstrap  /  config  
File Role Description
Files folder imagebackup (7 files)

  Files folder image Files (176)  /  bootstrap  /  config  /  backup  
File Role Description
  Accessible without login Plain text file app.json Data Auxiliary data
  Accessible without login Plain text file db.json Data Auxiliary data
  Accessible without login Plain text file ftp.json Data Auxiliary data
  Accessible without login Plain text file mail.json Data Auxiliary data
  Accessible without login Plain text file oauth_credentials.json Data Auxiliary data
  Accessible without login Plain text file session.json Data Auxiliary data
  Accessible without login Plain text file tools.json Data Auxiliary data

  Files folder image Files (176)  /  bootstrap  /  constant  
File Role Description
  Accessible without login Plain text file class-constant.php Example Example script
  Accessible without login Plain text file sys-constant.php Aux. Configuration script

  Files folder image Files (176)  /  bootstrap  /  loaders  
File Role Description
Files folder imageglobals (3 files)
  Accessible without login Plain text file ld-bug-catcher.php Aux. Configuration script
  Accessible without login Plain text file ld-commons-function.php Aux. Configuration script
  Accessible without login Plain text file ld-dump-function.php Aux. Configuration script
  Accessible without login Plain text file ld-logger-function.php Example Example script
  Accessible without login Plain text file ld-logger-init.php Example Example script
  Plain text file ld-router.php Class Class source
  Accessible without login Plain text file ld-server-conf.php Aux. Configuration script

  Files folder image Files (176)  /  bootstrap  /  loaders  /  globals  
File Role Description
  Accessible without login Plain text file func-env-init.php Example Example script
  Accessible without login Plain text file func-router.php Example Example script
  Accessible without login Plain text file func-translation.php Example Example script

  Files folder image Files (176)  /  bootstrap  /  routes  
File Role Description
  Accessible without login Plain text file admin.php Aux. Configuration script
  Accessible without login Plain text file api.php Aux. Configuration script
  Accessible without login Plain text file web.php Example Example script

  Files folder image Files (176)  /  bootstrap  /  template  
File Role Description
Files folder imageerror (4 files)
Files folder imagelayouts (5 files)
Files folder imagepartials (2 files)

  Files folder image Files (176)  /  bootstrap  /  template  /  error  
File Role Description
  Accessible without login Plain text file 404.php Aux. Configuration script
  Accessible without login Plain text file 405.php Aux. Configuration script
  Accessible without login Plain text file handler_error.php Aux. Configuration script
  Accessible without login Plain text file handler_error_no.php Aux. Configuration script

  Files folder image Files (176)  /  bootstrap  /  template  /  layouts  
File Role Description
  Accessible without login Plain text file config.php Aux. Configuration script
  Accessible without login Plain text file default.php Aux. Configuration script
  Accessible without login Plain text file landing.php Aux. Configuration script
  Accessible without login Plain text file template.php Aux. Configuration script
  Accessible without login Plain text file wellcome.php Aux. Configuration script

  Files folder image Files (176)  /  bootstrap  /  template  /  partials  
File Role Description
  Accessible without login Plain text file alert.php Aux. Configuration script
  Accessible without login Plain text file flash-messages.php Example Example script

  Files folder image Files (176)  /  cache  
File Role Description
Files folder imagetranslations (1 file)
  Accessible without login Plain text file routes.cache.php Aux. Configuration script

  Files folder image Files (176)  /  cache  /  translations  
File Role Description
  Accessible without login Plain text file en_common.php Aux. Configuration script

  Files folder image Files (176)  /  logs  
File Role Description
Files folder imageauth (1 file)

  Files folder image Files (176)  /  logs  /  auth  
File Role Description
  Accessible without login Plain text file attempts.json Data Auxiliary data

  Files folder image Files (176)  /  public  
File Role Description
Files folder imageassets (4 directories)
  Accessible without login Plain text file .htaccess Data Auxiliary data
  Accessible without login Plain text file .user.ini Data Auxiliary data
  Accessible without login Plain text file cli.php Aux. Configuration script
  Accessible without login Plain text file index.php Aux. Configuration script
  Accessible without login Plain text file index.php.example Data Auxiliary data
  Accessible without login Plain text file php.ini Data Auxiliary data

  Files folder image Files (176)  /  public  /  assets  
File Role Description
Files folder imagecss (2 files, 1 directory)
Files folder imageimg (2 directories)
Files folder imagejs (4 files)
Files folder imagejson (1 file)

  Files folder image Files (176)  /  public  /  assets  /  css  
File Role Description
Files folder imagefiracode (1 file)
  Accessible without login Plain text file config.css Data Auxiliary data
  Accessible without login Plain text file landing.css Data Auxiliary data

  Files folder image Files (176)  /  public  /  assets  /  css  /  firacode  
File Role Description
  Accessible without login Plain text file fira_code.css Data Auxiliary data

  Files folder image Files (176)  /  public  /  assets  /  img  
File Role Description
Files folder imagefavicon (17 files)
Files folder imagelanding (2 files)

  Files folder image Files (176)  /  public  /  assets  /  img  /  favicon  
File Role Description
  Accessible without login Image file 1024.ico Data Auxiliary data
  Accessible without login Image file 1024.png Icon Icon image
  Accessible without login Image file 128.ico Data Auxiliary data
  Accessible without login Image file 128.png Icon Icon image
  Accessible without login Image file 256.ico Data Auxiliary data
  Accessible without login Image file 256.png Icon Icon image
  Accessible without login Image file 512.ico Data Auxiliary data
  Accessible without login Image file 512.png Icon Icon image
  Accessible without login Image file 64.ico Data Auxiliary data
  Accessible without login Image file 64.png Icon Icon image
  Accessible without login Image file alert.png Icon Icon image
  Accessible without login Image file error.png Icon Icon image
  Accessible without login Image file favicon.ico Data Auxiliary data
  Accessible without login Image file favicon.png Icon Icon image
  Accessible without login Image file features.png Icon Icon image
  Accessible without login Image file info.png Icon Icon image
  Accessible without login Image file underdevelpoment.png Icon Icon image

  Files folder image Files (176)  /  public  /  assets  /  img  /  landing  
File Role Description
  Accessible without login Image file catalyst.png Icon Icon image
  Accessible without login Image file header_one.png Icon Icon image

  Files folder image Files (176)  /  public  /  assets  /  js  
File Role Description
  Accessible without login Plain text file bd-test.js Data Auxiliary data
  Accessible without login Plain text file landing.js Data Auxiliary data
  Accessible without login Plain text file main.js Data Auxiliary data
  Accessible without login Plain text file toasts.js Data Auxiliary data

  Files folder image Files (176)  /  public  /  assets  /  json  
File Role Description
  Accessible without login Plain text file manifest.json Data Auxiliary data

  Files folder image Files (176)  /  test  
File Role Description
  Accessible without login Plain text file error_test.php Example Example script

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads  
 100%
Total:0
This week:0