Skip to content

Latest commit

 

History

History
481 lines (420 loc) · 14.9 KB

README-CN.md

File metadata and controls

481 lines (420 loc) · 14.9 KB

Phalcon MVC 示例

这些是您可以使用Phalcon >= 3.0.x使用的[MVC][MVC -pattern]文件结构的示例要了解更多的文档,请查看Phalcon文档

简单的

这是一个非常简单的MVC结构,它包含一个模型,两个控制器和一个视图. 这个示例没有命名空间.服务在public/index.php中使用Di\FactoryDefault定义:

simple
├── apps
│   ├── controllers
│   │   ├── IndexController.php
│   │   └── ProductsController.php
│   ├── models
│   │   └── Products.php
│   └── views
│       └── products
│           └── index.phtml
└── public
    └── index.php

简单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:

这是一个非常简单的MVC示例,它包含一个模型,两个控制器和一个视图. 这个示例没有命名空间.服务在public/index.php中使用Di\FactoryDefault定义. 这个示例使用Volt模板引擎:

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

这是一个简单的MVC示例,它包含一个模型,三个控制器和一个视图. 路由在app/config/routes.php中定义.一些路由指向一个控制器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

一个简单的MVC结构没有使用了 Phalcon\Mvc\Application . 这个示例没有命名空间.讲的是如何实现类似于 Phalcon\Mvc\Application 的功能来替代它. 它还在 public/index.php 中定了了依赖注入,用于替换 Di\FactoryDefault (注入工厂/预定义依赖注入).

simple-without-application/
├── apps
│   ├── controllers
│   │   ├── IndexController.php
│   │   └── ProductsController.php
│   ├── models
│   │   └── Products.php
│   └── views
│       └── products
│           └── index.phtml
└── public
    └── index.php

Single

这是一个没有命名空间的单模块 MVC 结构.你可以找到一个模块目录在 apps/ 文件夹下. 这个示例没有命名空间.所有的服务在 public/index.php 中进行初始化. 此外,在这个文件中你还可以找到一个 Application 类,这个类初始化了服务和自动加载器,并按照功能进行了方法定义.

single
├── apps
│   ├── controllers
│   │   ├── IndexController.php
│   │   └── ProductsController.php
│   ├── models
│   │   └── Products.php
│   └── views
│       ├── index.phtml
│       └── products
│           ├── index.phtml
│           └── test.phtml
└── public
    └── index.php

Single-Namespaces

这是一个采用了命名空间的单模块 MVC 结构.你可以找到一个模块目录在 apps/ 文件夹下. 这个示例使用了命名空间.所有的服务在 public/index.php 中进行初始化. 此外,在这个文件中你还可以找到一个 Application 类,这个类初始化了服务和自动加载器,并按照功能进行了方法定义.

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:

Phalcon开发工具 生成的单模块 MVC 结构. 它没有单独的去初始化服务,而是采用了 Di\FactoryDefalut :

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

这是一个单模块 [MVC][mvcpattern] 结构。所有文件和目录都被驼峰化(包括视图):

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

这是一个单模块MVC结构,显示了一种非标准的服务注册方式:

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.. You can define which routes use one module or another in public/index.php:

这是一个多模块 MVC 结构.这个例子实现了两个模块:前端和后端. 默认情况下,如果不要求路由到后端,则提供前端. 你可以在 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

这是一个多模块的使用了 Vole模板引擎的 MVC 结构.这个例子实现了两个模块:前端和后端. 默认情况下,如果不要求路由到后端,则提供前端. 你可以在 public/index.php 定义一些路由使用一个模块或者自定义模块. 模板引擎使用的是 Volt:

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

这是一个多模块[MVC][MVC -pattern]结构,有一个主视图目录:

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

这是一个多模块MVC结构,由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

这是一个多模板的 MVC目录结构,它实现了服务层.

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

这是一个似于微框架的应用程序示例:

micro
└── index.php

Micro-Factory-Default

Phalcon开发工具生成的类似于微框架的应用程序:

micro-factory-default/
├── config
│   └── config.php
├── index.html
├── public
│   └── index.php
└── views
    ├── 404.phtml
    └── index.phtml

Micro-Simple-Views

一个类似于微框架的应用程序,其中的视图是使用 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