Phalcon Interview Questions and Answers
Most Frequently Asked Phalcon Interview Questions
Phalcon is a full-stack open source framework written in PHP and C (programming languages). It is the first framework that implements object-relational-mapping (ORM) in C. This loosely coupled framework is based on MVC (model-view-controller) architecture. Phalcon runs on PHP 5.4 and is one of the fastest frameworks. Phalcon can be used for end to end web applications that
- Need to be super-fast and handle more HTTP requests per second
- Consume less resource (hardware) storage as the C extensions are loaded along with PHP during the web-server start process and are pre-compiled.
Following are the unique features of Phalcon –
- Fastest full stack framework for PHP
- Low memory and CPU consumption
- Supports the standard MVC directory structure.
- Loosely coupled, the user can use the full framework or use only the required components.
- Uses Dependency injection pattern for faster location of services
- First framework to implement ORM (Object-Relational-Mapping)
In Phalcon, we can increase CSRF (Cross-Site Request Forgery) timeout by increasing the token time as tokens maintain the user sessions. Token time is valid until the session is valid. The session time can be increased by setting session.gc_maxlifetime to a higher value in the php.ini file.
ODM or Object-Document-Mapping is the mapping for NoSQL databases. Phalcon can map documents from NoSQL databases through ODM using a unique ObjectID for each object to be mapped. Phalcon’s ODM offers CRUD functionality, events, validation, and other services. The advantage of ODM is that it is a persistence mechanism where an application model and data source have no dependencies on each other.
Dependency Injection (DI) is a pattern through which appropriate objects or instances of a class are created during run-time rather than compile-time. The class, thus, becomes independent from creating the cases and it is the responsibility of DI to know which class requires what objects and provide the same. In Phalcon, the DI component implements dependency injection and manages the global instances of different classes used in the application.
In Phalcon, routing is managed by its Router component. This component allows the user to define and add custom routes that can be mapped to controllers or handlers that receive the requests from the application. The router parses the incoming URI based on the information received.
To initiate new session,
- $session = new Session();
- $session->start();
setting data into session
- $this->session->set("key", "value");
retrieve session data
- $this->session->get(“key”);
removing session
- $this->session->remove(“key”'); //remove particular variable
- $this->session->destroy(); //remove the session
Lazy initialization is a technique where a class is automatically loaded by the Phalcon class ‘Loader’ during runtime. This greatly improves performance. Auto loader does this in 4 ways i.e. by registering
- namespaces, $loader->registerNamespaces(…)
- directories, $loader->registerDirs(…)
- classes, $loader->registerClasses(…)
- files $loader->registerFiles(…)
and then registering the auto loader as $loader->register();
Volt is the template engine used in Phalcon. It is fast and designer-friendly. Volt views are compiled in php and have many helpers that make writing views easier and quicker.