Convert Figma logo to code with AI

phalcon logocphalcon

High performance, full-stack PHP framework delivered as a C extension.

10,776
1,965
10,776
101

Top Related Projects

78,107

Laravel is a web application framework with expressive, elegant syntax. We’ve already laid the foundation for your next big idea — freeing you to create without sweating the small things.

29,606

The Symfony PHP framework

14,227

Yii 2: The Fast, Secure and Professional PHP Framework

8,679

CakePHP: The Rapid Development Framework for PHP - Official Repository

Open Source PHP Framework (originally from EllisLab)

64,773

Fast, unopinionated, minimalist web framework for node.

Quick Overview

Phalcon is a high-performance PHP web framework delivered as a C extension. It is designed to be the fastest PHP framework, offering low overhead and high execution speed. Phalcon's unique architecture allows developers to build high-performance web applications with minimal server resources.

Pros

  • Extremely high performance due to its C-based architecture
  • Low overhead and memory consumption
  • Full-stack framework with a wide range of built-in features
  • Easy to learn for developers familiar with MVC patterns

Cons

  • Requires installation of a C extension, which can be challenging on some hosting environments
  • Less flexibility in terms of core modifications compared to pure PHP frameworks
  • Smaller community and ecosystem compared to more popular PHP frameworks
  • Steeper learning curve for developers new to C extensions

Code Examples

  1. Defining a route:
use Phalcon\Mvc\Router;

$router = new Router();

$router->add(
    '/blog/{year}/{month}/{title}',
    [
        'controller' => 'blog',
        'action'     => 'show'
    ]
);
  1. Creating a model:
use Phalcon\Mvc\Model;

class Users extends Model
{
    public $id;
    public $name;
    public $email;

    public function initialize()
    {
        $this->setSource('users');
    }
}
  1. Dependency injection:
use Phalcon\Di\FactoryDefault;
use Phalcon\Db\Adapter\Pdo\Mysql;

$di = new FactoryDefault();

$di->set('db', function () {
    return new Mysql(
        [
            'host'     => 'localhost',
            'username' => 'root',
            'password' => 'secret',
            'dbname'   => 'phalcon_db',
        ]
    );
});

Getting Started

  1. Install Phalcon extension:

    pecl install phalcon
    
  2. Create a new Phalcon project:

    composer create-project phalcon/project myproject
    
  3. Configure your web server to point to the public/ directory.

  4. Start building your application by defining routes, controllers, and models in the appropriate directories within your project structure.

Competitor Comparisons

78,107

Laravel is a web application framework with expressive, elegant syntax. We’ve already laid the foundation for your next big idea — freeing you to create without sweating the small things.

Pros of Laravel

  • Extensive documentation and large community support
  • Built-in features like Eloquent ORM and Artisan CLI
  • More gradual learning curve for beginners

Cons of Laravel

  • Generally slower performance due to its architecture
  • Higher memory consumption
  • Steeper learning curve for advanced features

Code Comparison

Laravel (Routing):

Route::get('/user/{id}', function ($id) {
    return 'User '.$id;
});

Phalcon (Routing):

$router->add('/user/{id}', [
    'controller' => 'user',
    'action' => 'profile'
]);

Laravel focuses on expressive, elegant syntax, while Phalcon prioritizes performance and low-level optimizations. Laravel's routing is more intuitive for beginners, but Phalcon's approach offers more granular control.

Laravel uses a service container for dependency injection, whereas Phalcon relies on its DI container. Laravel's Eloquent ORM is more feature-rich, but Phalcon's ORM is faster due to its C-based implementation.

Both frameworks have their strengths: Laravel excels in rapid development and ease of use, while Phalcon shines in performance-critical applications. The choice between them often depends on project requirements and developer preferences.

29,606

The Symfony PHP framework

Pros of Symfony

  • More extensive ecosystem with a larger community and wider adoption
  • Modular architecture allowing for flexible use of components
  • Comprehensive documentation and learning resources

Cons of Symfony

  • Steeper learning curve due to its complexity and size
  • Generally slower performance compared to Phalcon's C-based implementation

Code Comparison

Symfony route definition:

/**
 * @Route("/hello/{name}", name="hello")
 */
public function hello($name)
{
    return new Response("Hello, " . $name);
}

Phalcon route definition:

$router->add("/hello/{name}", [
    "controller" => "greeting",
    "action" => "hello"
]);

public function helloAction($name)
{
    echo "Hello, " . $name;
}

Both frameworks offer routing capabilities, but Symfony uses annotations while Phalcon uses a more explicit approach. Symfony's method is more concise, but Phalcon's may be more immediately understandable for newcomers.

Symfony provides a more feature-rich environment with extensive tools and libraries, making it suitable for complex, large-scale projects. Phalcon, being written in C, offers superior performance and is ideal for high-performance applications where speed is crucial. The choice between the two depends on project requirements, team expertise, and performance needs.

14,227

Yii 2: The Fast, Secure and Professional PHP Framework

Pros of Yii2

  • Pure PHP implementation, making it easier to install and deploy
  • More extensive documentation and larger community support
  • Better integration with modern PHP practices and tools

Cons of Yii2

  • Generally slower performance compared to Phalcon
  • Steeper learning curve for beginners
  • Heavier memory footprint

Code Comparison

Yii2 (Controller action):

public function actionIndex()
{
    $posts = Post::find()->orderBy('created_at DESC')->limit(10)->all();
    return $this->render('index', ['posts' => $posts]);
}

Phalcon (Controller action):

public function indexAction()
{
    $this->view->posts = Posts::find([
        'order' => 'created_at DESC',
        'limit' => 10
    ]);
}

Both frameworks offer MVC architecture and ORM capabilities, but Phalcon's syntax is often more concise due to its C-based implementation. Yii2 provides a more familiar PHP-style approach, which can be easier for developers transitioning from other PHP frameworks.

Yii2 excels in its extensive widget system and built-in security features, while Phalcon shines in performance and memory efficiency. The choice between the two often depends on project requirements, team expertise, and performance needs.

8,679

CakePHP: The Rapid Development Framework for PHP - Official Repository

Pros of CakePHP

  • More extensive documentation and larger community support
  • Easier learning curve for beginners
  • Built-in ORM with powerful database abstraction

Cons of CakePHP

  • Slower performance compared to Phalcon's C-extension based architecture
  • Heavier memory footprint
  • Less flexibility in some areas due to its opinionated structure

Code Comparison

CakePHP controller example:

class ArticlesController extends AppController
{
    public function index()
    {
        $articles = $this->Articles->find('all');
        $this->set(compact('articles'));
    }
}

Phalcon controller example:

class ArticlesController extends ControllerBase
{
    public function indexAction()
    {
        $articles = Articles::find();
        $this->view->articles = $articles;
    }
}

Both frameworks follow MVC architecture, but Phalcon's syntax is generally more concise. CakePHP uses a more traditional PHP approach, while Phalcon leverages its C-extension for optimized performance.

CakePHP is better suited for developers who prioritize extensive documentation, community support, and a gentler learning curve. Phalcon excels in performance-critical applications where speed and low memory usage are crucial. The choice between the two depends on project requirements, team expertise, and performance needs.

Open Source PHP Framework (originally from EllisLab)

Pros of CodeIgniter4

  • Easier learning curve and simpler architecture
  • Better documentation and larger community support
  • More flexible and customizable out of the box

Cons of CodeIgniter4

  • Lower performance compared to Phalcon's C-extension
  • Less built-in features and modules
  • Slower development cycle and updates

Code Comparison

CodeIgniter4:

$routes->get('/', 'Home::index');
$routes->post('users/create', 'Users::create');
$routes->put('users/(:num)', 'Users::update/$1');

Phalcon:

$router->add('/', ['controller' => 'Home', 'action' => 'index']);
$router->addPost('/users/create', 'Users::create');
$router->addPut('/users/{id:[0-9]+}', 'Users::update');

Both frameworks use similar routing syntax, but Phalcon's approach is slightly more concise. CodeIgniter4 uses a more explicit method naming convention, while Phalcon allows for more flexibility in defining routes.

CodeIgniter4 is generally easier to learn and has better documentation, making it a good choice for beginners or smaller projects. Phalcon, on the other hand, offers superior performance due to its C-extension implementation, making it ideal for high-performance applications. However, Phalcon's learning curve is steeper, and its community is smaller compared to CodeIgniter4.

64,773

Fast, unopinionated, minimalist web framework for node.

Pros of Express

  • Larger ecosystem and community support
  • More flexible and lightweight architecture
  • Easier to learn and use for beginners

Cons of Express

  • Generally slower performance compared to Phalcon
  • Lacks built-in ORM and other features that Phalcon provides out-of-the-box

Code Comparison

Express:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

Phalcon:

use Phalcon\Mvc\Micro;

$app = new Micro();

$app->get('/', function () {
    echo 'Hello World!';
});

Both frameworks offer simple routing and request handling, but Phalcon's syntax is more concise due to its C-based implementation. Express, being JavaScript-based, may be more familiar to web developers.

Express is known for its minimalist approach, allowing developers to add only the features they need. This flexibility comes at the cost of having to manually integrate additional modules for common functionalities.

Phalcon, on the other hand, provides a full-stack framework with built-in ORM, templating engine, and security features. This can lead to faster development times but may be overkill for smaller projects.

Performance-wise, Phalcon generally outperforms Express due to its compiled nature and lower-level implementation. However, Express's large ecosystem and community support make it easier to find solutions and third-party modules for various requirements.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Phalcon Framework

Phalcon 5.x CI Codecov master Codecov 5.0x

Discord Contributors Phalcon Backers OpenCollective OpenCollective

5.0 Pull Requests 5.0 Issues

Phalcon is an open source web framework delivered as a C extension for the PHP language providing high performance and lower resource consumption.

A big thank you to our Backers; you rock!

Getting Started

Phalcon is written in Zephir/C with platform independence in mind. As a result, Phalcon is available on Microsoft Windows, GNU/Linux, FreeBSD and macOS. You can either download a binary package for the system of your choice or build it from source.

Installation

For detailed installation instructions you can check our installation page in the docs.

Generating API Documentation

Generating new documentation files for docs repository can be done using the script in tests/__config/generate-api-docs.php. Steps:

  • Clone the phalcon repo
  • Checkout the tag you would like to generate docs for.
  • Run php tests/__config/generate-api-docs.php
  • The files *.md files in nikos/api/ will contain the documentation
  • For publishing to the Phalcon website this repo is used.

Links

General

Support

Social Media

Sponsors

Become a sponsor and get your logo on our README on GitHub with a link to your site. [Become a sponsor]

OpenCollective Contributors

Backers

Support us with a monthly donation and help us continue our activities. [Become a backer]

OpenCollective Contributors

License

Phalcon is open source software licensed under the BSD 3-Clause License.

Copyright © 2011-present, Phalcon Team.

See the LICENSE.txt file for more. Additional licenses of packages that Phalcon uses, is inspired by or has adapted is located in the 3rdparty/licenses directory.