Basic Features

  • Layershift

    Low overhead

    Low memory consumption and CPU comparted to traditional frameworks

  • Layershift

    MVC & HMVC

    Modules, components, models, views and controllers

  • Layershift

    Dependency Injection

    Dependency Injection and Location of services and it’s itself a container for them.

  • Layershift

    Rest

    In this case, you can use either a micro or full stack application to meet your goal. In addition, a powerful set of HTTP helpers.

  • Layershift

    Autoloader

    Provides the autoloading mechanism of PHP classes following PSR-4.

  • Layershift

    Router

    Phalcon\Mvc\Router provides advanced routing capabilities.

Low overhead

PHP C-extension (Phalcon)

  • Zephir/C extensions are loaded together with PHP one time on the web server’s daemon start process
  • Classes and functions provided by the extension are ready to use for any application
  • The code is compiled and isn’t interpreted because it's already compiled to a specific platform and processor
  • Thanks to its low-level architecture and optimizations Phalcon provides the lowest overhead for MVC-based applications

Data & storage

  • Layershift

    ORM

    Object Relational Mapping

  • Layershift

    PHQL

    The powerful and secure Phalcon Query Language, PHQL

  • Layershift

    ODM for Mongo

    Object Document Mapping for MongoDB

  • Layershift

    Transactions

    Transactions in Phalcon allows to keep the data integraty safe.

  • Layershift

    Cache

    Improve your performance with many of the backend caches that Phalcon provides

ORM

A powerful ORM is provided by Phalcon allowing you to manipulate database records as classes and objects. MySQL, PostgreSQL and SQLite are supported out of the box.

                    
use Phalcon\Mvc\Model;

class Robots extends Model
{
    public $id;

    public $name;

    public function initialize()
    {
        $this->hasMany("id", "RobotsParts", "robots_id");
    }
}
                    
                

Views & frontend

  • Layershift

    Template engines

    Views represent the user interface of your application

  • Layershift

    Template Engine (Volt)

    A template engine inspered in Jinja but built in C for PHP

  • Layershift

    i18n

    Translate your applications to many languages easily

  • Layershift

    Forms Builder

    Create HTML forms with Minor Effort

  • Layershift

    Flash Messages

    Flash messages are used to notify the user about the state of actions.

Template engines

Views represent the user interface of your application. Views are often HTML files with embedded PHP code that perform tasks related solely to the presentation of the data. Views handle the job of providing data to the web browser or other tool that is used to make requests from your application.

                    
<html>
    <body>
    <div class='top'><?php $this->partial('shared/ad_banner'); ?></div>
    <div class='content'>
        <h1>Robots</h1>
        <p>Check out our specials for robots:</p>
        ...
    </div>
    <div class='footer'><?php $this->partial('shared/footer'); ?></div>
    </body>
</html>                    
                

More...

  • Layershift

    ACL

    Access Control List allows users to access the modules they're authorized to

  • Layershift

    Sharding

    Connect, store and retrieve data from many database systems at the same time

  • Layershift

    Crypt

    Encrypt/Decrypt important data to keep them safe from unauthorized third-parties

  • Layershift

    Events

    Extend the most of the framework components by setting “hook points”. Create your own events and make your application more flexible and powerful

  • Layershift

    Queueing - background process

    Use the built-in queueing system in Phalcon to schedule jobs and reduce the load of your web server

ACL

This is how you can built the access control list (ACL):

                    
use Phalcon\Acl;
use Phalcon\Acl\Role;
use Phalcon\Acl\Adapter\Memory as AclList;

// Create the ACL
$acl = new AclList();

// The default action is DENY access
$acl->setDefaultAction(Acl::DENY);

// Register two roles, Users is registered users
// and guests are users without a defined identity
$roles = array(
    'users'  => new Role('Users'),
    'guests' => new Role('Guests')
);

foreach ($roles as $role) {
    $acl->addRole($role);
}
                    
                

A polling app built from scratch in < 15 min

Watch the demo video

Come join our vibrant developer community!

Community contributed with Extensions, Plugins, Adapters, VM, examples, source code... and more


Phalcon contributors

Phalcon is improved everyday by our amazing community

phalcon andresgutierrez sjinks sergeyklay niden ovr dreamsxin SidRoberts xboston carvajaldiazeduar steffengy mruz nkt kenjikobe beliarh Cinderella-Man KorsaR-ZN iGusev Green-Cat endeveit gsouf tmihalik kjdev WooDzu JimmDiGrizli quantum13 olivier-monaco racklin rianorie digitronac netstu dogstarTest marciopaiva qzfzz ogarbe mobli Chameleon-m akaNightmare odiel xueron uonick KevinJay DestinyMKas inouet dugwood jerejones patrick-zippenfenig maxgalbu boxbillinggit thecodeassassin tigerstrikemedia Kachit rigin wenchen unisys12 carlosstenzel lukosius MaxCodeX Barbery relort jizhidemowang robertsmolarek stibiumz zinovyev pvm panlatent hylent richmulhern dario1985 zyxep theDisco 7thcubic nexik ilyk parshikov baszczewski braska eugene-matvejev nazwa YerlenZhubangaliyev andycheg PyYoshi thehe davihu