Phalcon MVC Examples
These are examples of MVC file structures you can employ using Phalcon >= 3.0.x
For further documentation, check out the Phalcon Docs.
ๅ ถไป่ฏๆ
Simple
This is a very simple MVC structure, it contains one model, two controllers and a view.
This example does not implement namespaces. Services are defined in public/index.php
without using Di\FactoryDefault
:
simple
โโโ apps
โย ย โโโ controllers
โย ย โย ย โโโ IndexController.php
โย ย โย ย โโโ ProductsController.php
โย ย โโโ models
โย ย โย ย โโโ Products.php
โย ย โโโ views
โย ย โโโ products
โย ย โโโ index.phtml
โโโ public
โโโ index.php
Simple-Volt
This is a very simple MVC structure, it contains one model, two controllers and a view.
This example does not implement namespaces. Services are defined in public/index.php
without using Di\FactoryDefault
. This example uses Volt as template engine:
simple-volt/
โโโ app
โย ย โโโ config
โย ย โย ย โโโ config.php
โย ย โย ย โโโ loader.php
โย ย โย ย โโโ services.php
โย ย โโโ controllers
โย ย โย ย โโโ ControllerBase.php
โย ย โย ย โโโ IndexController.php
โย ย โโโ views
โย ย โโโ index
โย ย โย ย โโโ index.volt
โย ย โย ย โโโ test.volt
โย ย โโโ index.volt
โย ย โโโ layouts
โย ย โโโ template.volt
โโโ index.html
โโโ public
โโโ index.php
Simple-Subcontrollers
Another very simple MVC structure, it contains one model, three controllers and a view.
Routes are defined in app/config/routes.php
. Some routes point to controllers in a
subdirectory of controllers/
:
simple-subcontrollers/
โโโ app
โย ย โโโ config
โย ย โย ย โโโ config.php
โย ย โย ย โโโ loader.php
โย ย โย ย โโโ routes.php
โย ย โย ย โโโ services.php
โย ย โโโ controllers
โย ย โย ย โโโ ControllerBase.php
โย ย โย ย โโโ UsersController.php
โย ย โย ย โโโ admin
โย ย โย ย โโโ ControllerBase.php
โย ย โย ย โโโ UsersController.php
โย ย โโโ views
โย ย โโโ admin
โย ย โย ย โโโ users
โย ย โย ย โโโ index.volt
โย ย โโโ index
โย ย โย ย โโโ index.volt
โย ย โโโ index.volt
โย ย โโโ users
โย ย โโโ index.volt
โโโ index.html
โโโ public
โโโ index.php
Simple-Without-Application
Simple MVC structure without employing Phalcon\Mvc\Application
.
This application does not use namespaces. This is an example of
how you can override Phalcon\Mvc\Application
by implementing a similar functionality.
It also defines services without using Di\FactoryDefault
in public/index.php
:
simple-without-application/
โโโ apps
โย ย โโโ controllers
โย ย โย ย โโโ IndexController.php
โย ย โย ย โโโ ProductsController.php
โย ย โโโ models
โย ย โย ย โโโ Products.php
โย ย โโโ views
โย ย โโโ products
โย ย โโโ index.phtml
โโโ public
โโโ index.php
Single
This a single-module MVC structure without namespaces. You can find the module's directories
under the apps/
directory. This example does not use namespaces. All services are
initialized in public/index.php
. Also, in this file, you can also find an application
class that initializes services and autoloaders grouping these tasks by methods.
single
โโโ apps
โย ย โโโ controllers
โย ย โย ย โโโ IndexController.php
โย ย โย ย โโโ ProductsController.php
โย ย โโโ models
โย ย โย ย โโโ Products.php
โย ย โโโ views
โย ย โโโ index.phtml
โย ย โโโ products
โย ย โโโ index.phtml
โย ย โโโ test.phtml
โโโ public
โโโ index.php
Single-Namespaces
This a single-module MVC structure using namespaces. You can find the module's directories
under the apps/
directory. This example does use namespaces. All services are
initialized in public/index.php
. Also, in this file, you can also find an application
class that initializes services and autoloaders grouping these tasks by methods.
single-namespaces/
โโโ apps
โย ย โโโ controllers
โย ย โย ย โโโ IndexController.php
โย ย โย ย โโโ ProductsController.php
โย ย โโโ models
โย ย โย ย โโโ Products.php
โย ย โโโ views
โย ย โโโ products
โย ย โโโ index.phtml
โโโ public
โโโ index.php
Single-Factory-Default
A single-module MVC structure as is generated by Phalcon Developer Tools.
Instead of initialize every service individually, it uses Di\FactoryDefault
:
single-factory-default/
โโโ app
โย ย โโโ config
โย ย โย ย โโโ config.php
โย ย โโโ controllers
โย ย โย ย โโโ ControllerBase.php
โย ย โย ย โโโ IndexController.php
โย ย โย ย โโโ TestController.php
โย ย โโโ views
โย ย โโโ index
โย ย โย ย โโโ index.phtml
โย ย โโโ index.phtml
โโโ index.html
โโโ public
โโโ index.php
Single-Camelized-Dirs
This a single-module MVC structure. All files and directories are camelized (including views):
single-camelized-dirs/
โโโ App
โย ย โโโ Config
โย ย โย ย โโโ Loader.php
โย ย โย ย โโโ Services.php
โย ย โโโ Controllers
โย ย โย ย โโโ IndexController.php
โย ย โย ย โโโ ProductsController.php
โย ย โโโ Models
โย ย โย ย โโโ Products.php
โย ย โโโ Views
โย ย โโโ Index
โย ย โย ย โโโ Index.phtml
โย ย โโโ Products
โย ย โโโ Index.phtml
โโโ public
โโโ index.php
Single-Service-Provider
This a single-module MVC structure which shows a non-standard way of registering services:
single-service-provider/
โโโ app
โย ย โโโ Bootstrap.php
โย ย โโโ Http
โย ย โย ย โโโ Controllers
โย ย โย ย โย ย โโโ Controller.php
โย ย โย ย โย ย โโโ IndexController.php
โย ย โย ย โโโ routes.php
โย ย โโโ Models
โย ย โโโ Providers
โย ย โโโ AbstractServiceProvider.php
โย ย โโโ ConfigServiceProvider.php
โย ย โโโ DatabaseServiceProvider.php
โย ย โโโ EscaperServiceProvider.php
โย ย โโโ EventManagerServiceProvider.php
โย ย โโโ ModelsMetadataServiceProvider.php
โย ย โโโ MvcDispatcherServiceProvider.php
โย ย โโโ PhpTemplateEngineServiceProvider.php
โย ย โโโ ResponseServiceProvider.php
โย ย โโโ RouterServiceProvider.php
โย ย โโโ ServiceProviderInterface.php
โย ย โโโ SessionServiceProvider.php
โย ย โโโ TagServiceProvider.php
โย ย โโโ UrlResolverServiceProvider.php
โย ย โโโ ViewServiceProvider.php
โย ย โโโ VoltTemplateEngineServiceProvider.php
โโโ bootstrap
โย ย โโโ autoload.php
โโโ config
โย ย โโโ application.php
โย ย โโโ providers.php
โโโ index.html
โโโ public
โย ย โโโ index.php
โโโ resources
โย ย โโโ views
โย ย โโโ index
โย ย โย ย โโโ index.volt
โย ย โโโ index.volt
โย ย โโโ partials
โย ย โโโ content.volt
โโโ storage
โโโ cache
โย ย โโโ data
โย ย โโโ volt
โโโ logs
Multiple
This a multi-module MVC structure. This example implements two modules: frontend and backend.
By default frontend is served if no route to backend is asked. You can define which routes
use one module or another in public/index.php
:
multiple/
โโโ apps
โย ย โโโ backend
โย ย โย ย โโโ Module.php
โย ย โย ย โโโ controllers
โย ย โย ย โย ย โโโ IndexController.php
โย ย โย ย โย ย โโโ LoginController.php
โย ย โย ย โย ย โโโ ProductsController.php
โย ย โย ย โโโ models
โย ย โย ย โย ย โโโ Products.php
โย ย โย ย โโโ views
โย ย โย ย โโโ login
โย ย โย ย โย ย โโโ index.phtml
โย ย โย ย โโโ products
โย ย โย ย โโโ index.phtml
โย ย โโโ frontend
โย ย โโโ Module.php
โย ย โโโ controllers
โย ย โย ย โโโ IndexController.php
โย ย โย ย โโโ ProductsController.php
โย ย โย ย โโโ UsersController.php
โย ย โโโ models
โย ย โย ย โโโ Products.php
โย ย โโโ views
โย ย โโโ index
โย ย โย ย โโโ index.phtml
โย ย โโโ products
โย ย โโโ index.phtml
โโโ public
โโโ index.php
Multiple-Volt
This a multi-module MVC structure. This example implements two modules: frontend and backend.
By default frontend is served if no route to backend is asked. You can define which routes
use one module or another in public/index.php
. Volt is used as template engine:
multiple-volt/
โโโ apps
โย ย โโโ frontend
โย ย โโโ Module.php
โย ย โโโ config
โย ย โย ย โโโ config.php
โย ย โโโ controllers
โย ย โย ย โโโ ControllerBase.php
โย ย โย ย โโโ IndexController.php
โย ย โโโ views
โย ย โโโ index
โย ย โย ย โโโ index.volt
โย ย โโโ index.volt
โโโ config
โย ย โโโ modules.php
โย ย โโโ services.php
โโโ index.html
โโโ public
โโโ index.php
Multiple-Shared-Views
This a multi-module MVC structure with a common views directory:
multiple-shared-views/
โโโ apps
โย ย โโโ common
โย ย โย ย โโโ views
โย ย โย ย โโโ index
โย ย โย ย โย ย โโโ index.phtml
โย ย โย ย โโโ index.phtml
โย ย โย ย โโโ products
โย ย โย ย โโโ index.phtml
โย ย โโโ modules
โย ย โโโ backend
โย ย โย ย โโโ Module.php
โย ย โย ย โโโ controllers
โย ย โย ย โย ย โโโ IndexController.php
โย ย โย ย โย ย โโโ ProductsController.php
โย ย โย ย โโโ models
โย ย โย ย โโโ Products.php
โย ย โโโ frontend
โย ย โโโ Module.php
โย ย โโโ controllers
โย ย โโโ IndexController.php
โโโ public
โโโ index.php
Multiple-Factory-Default
This a multi-module MVC structure as is generated by Phalcon Developer Tools:
multiple-factory-default/
โโโ apps
โย ย โโโ frontend
โย ย โโโ Module.php
โย ย โโโ config
โย ย โย ย โโโ config.php
โย ย โโโ controllers
โย ย โย ย โโโ ControllerBase.php
โย ย โย ย โโโ IndexController.php
โย ย โโโ views
โย ย โโโ index
โย ย โย ย โโโ index.phtml
โย ย โโโ index.phtml
โโโ index.html
โโโ public
โโโ index.ph
Multiple-Service-Layer-Model
This a multi-module MVC structure with model service layer pattern implemented:
multiple-service-layer-model/
โโโ apps
โย ย โโโ config
โย ย โย ย โโโ config.php
โย ย โย ย โโโ modules.php
โย ย โย ย โโโ services.php
โย ย โโโ models
โย ย โย ย โโโ entities
โย ย โย ย โย ย โโโ User.php
โย ย โย ย โโโ repositories
โย ย โย ย โย ย โโโ Exceptions
โย ย โย ย โย ย โย ย โโโ InvalidRepositoryException.php
โย ย โย ย โย ย โโโ Repositories.php
โย ย โย ย โย ย โโโ Repository
โย ย โย ย โย ย โโโ User.php
โย ย โย ย โโโ services
โย ย โย ย โโโ Exceptions
โย ย โย ย โย ย โโโ InvalidServiceException.php
โย ย โย ย โโโ Service
โย ย โย ย โย ย โโโ User.php
โย ย โย ย โโโ Services.php
โย ย โโโ modules
โย ย โโโ frontend
โย ย โโโ Module.php
โย ย โโโ controllers
โย ย โย ย โโโ ControllerBase.php
โย ย โย ย โโโ IndexController.php
โย ย โโโ views
โย ย โโโ index
โย ย โย ย โโโ index.phtml
โย ย โโโ index.phtml
โโโ database.sql
โโโ index.html
โโโ public
โย ย โโโ index.php
โโโ tests
โโโ Services
โย ย โโโ UserServiceTest.php
โโโ TestHelper.php
โโโ UnitTestCase.php
โโโ phpunit.xml
Micro
A micro-framework-like application:
micro
โโโ index.php
Micro-Factory-Default
A micro-framework-like application as is generated by Phalcon Developer Tools:
micro-factory-default/
โโโ config
โย ย โโโ config.php
โโโ index.html
โโโ public
โย ย โโโ index.php
โโโ views
โโโ 404.phtml
โโโ index.phtml
Micro-Simple-Views
A micro-framework-like application where views are rendered using Phalcon\Mvc\View\Simple
:
micro-simple-views
โโโ config
โย ย โโโ config.php
โย ย โโโ services.php
โโโ index.php
โโโ views
โโโ 404.volt
โโโ 500.volt
โโโ index.volt
License
Phalcon MVC Examples is open source software licensed under the New BSD License.
See the LICENSE.txt file for more.
Copyright (c) 2011-2016, Phalcon Framework Team