binarykitten / zeffmu
该包已被废弃,不再维护。未建议替代包。
基于Zend Framework 2的微框架
0.2.0
2015-10-20 21:36 UTC
Requires
- php: >=5.5
- zendframework/zend-console: ~2.5.0
- zendframework/zend-http: ~2.5.0
- zendframework/zend-i18n: ~2.5.0
- zendframework/zend-loader: ~2.5.0
- zendframework/zend-log: ~2.5.0
- zendframework/zend-modulemanager: ~2.6.1
- zendframework/zend-mvc: ~2.6.0
- zendframework/zend-serializer: ~2.5.0
- zendframework/zend-view: ~2.5.0
Requires (Dev)
- phpunit/phpunit: ~4.0|~5.0
This package is not auto-updated.
Last update: 2020-08-21 17:59:20 UTC
README
Zeff - 有效核电荷(通常表示为Zeff或Z*)是多电子原子中电子所感受到的净正电荷。
Mu - 微米或小
Zeff也是英国英语发音的Zed Eff(ZF)的缩写
此项目是一个简单示例,说明如何使用ZF2构建一个真正简单的微框架。它看起来与silex完全一样,但其核心基本上是一个ServiceManager
。
这允许您拥有简单的闭包返回输出,涉及服务和其他更高级组件的复杂架构,例如ZF2的ModuleManager或Doctrine2 ORM。
重要提示
请注意,这是一个出于娱乐目的并了解Silex和ZF2架构相似或不同而启动的项目。
我们正在为各种新功能和修复工作而努力
我们希望每个里程碑都能达到初步的稳定性,从里程碑v0.0.5开始。在达到这个第一个里程碑之前,master被视为不稳定和易变的。
安装
在一个带有composer.json
文件的项目中,在您的控制台中输入以下内容。
$ composer require binarykitten/zeffmu
您可以使用*
作为所需版本。
使用
在您的public/index.php
文件中(假设public
是您的webroot),定义以下内容
<?php chdir(dirname(__DIR__)); require 'vendor/autoload.php'; $app = \ZeffMu\App::init(); $app ->route('/', function() { return '<a href="/hello">HEllo!</a>'; }) ->route('/hello', function() { return 'Hi!'; }) ->route('/hello/:name', function($params) use ($app) { return 'Hello ' . $params['name']; }) ->route('/hello/:name/:surname', function($params) use ($app) { return 'Hello, Mr. ' . $params['surname'] . ', or shall I call you ' . $params['name'] . '?'; }) ->run();
优势
- 由于应用程序是一个功能齐全的ZF应用程序,您也可以在闭包中返回视图模型,从而进行模板渲染。
- 您可以在事件(如标准ZF2应用程序中)上附加监听器
- 您可以像在标准MVC应用程序中那样获取服务(例如,
$app->getService('db')
或$app->getServiceLocator()->get('db')
) - 您可以加载模块,并在典型ZF2应用程序中拥有任何模块功能
限制(目前)
- ZeffMu目前将路由所有HTTP请求,而不管HTTP方法。
- 它不支持原生地过滤输出字符串等操作
- 它不支持设置控制器或从内部服务定位器检索它们(因为这需要命名控制器,并最终导致ZF2的MVC)。路由和分配也与ZF2不同。一个回退可能是有趣的。
- 它不支持注册除
Zend\Mvc\Router\Http\Part
之外的路由 - 默认情况下,它提供了默认ZF2应用程序中提供的所有服务
- 无法在路由匹配中定义名为“controller”的参数,因为它已被保留
- 组装路由尚不可用
- 辅助方法(视图辅助器/控制器插件)实用工具无法从应用程序对象中以简单的方式访问。一些简单的快捷方式可能有所帮助。
高级用法
- 待定:服务
- 待定:事件