fwk / core
Fwk Core系统
v1.0.1
2016-06-03 12:32 UTC
Requires
- php: >=5.3.4
- fwk/di: 1.*
- fwk/events: dev-master
- fwk/xml: dev-master
- symfony/http-foundation: dev-master
Requires (Dev)
- filp/whoops: dev-master
Suggests
- symfony/console: Required to use the Console Component
This package is not auto-updated.
Last update: 2024-09-14 13:45:53 UTC
README
Core是一个零配置的应用程序框架,能让开发者感到开心 :)
安装
通过Composer
{
"require": {
"fwk/core": "dev-master",
}
}
如果您不使用Composer,您仍然可以下载此存储库并将其添加到您的include_path
PSR-0兼容的
简介
Core可以根据您的应用程序需求以及您计划如何维护和随着时间的推移使其发展而有所不同。没有目录结构依赖性也没有“推荐模式”。了解如何在您的环境中配置PHP 5.3+是唯一的先决条件。
对应用的请求调用一个操作(控制器),有时会使用服务(模型)来返回一个结果(视图)。Fwk\Core让您可以使用任何类型的操作,这要归功于操作代理。一个包含请求(和响应)的对象在运行时共享,它是上下文。运行时创建应用程序发出的事件,这些事件可以由监听器使用以扩展其行为。
包含的操作代理包括
- CallableActionProxy(
callable
):调用callable
- ControllerActionProxy(
className
,methodName
):实例化className
并调用methodName
- IncludeActionProxy(
file.php
):包含file.php
- ServiceActionProxy(
serviceName
):执行注册为serviceName
的服务 - ServiceControllerActionProxy(
serviceName
,methodName
):在注册为serviceName
的服务上执行methodName
建议使用Fwk\Core\Action\ProxyFactory
作为对应Fwk\Core\ActionProxy
的快捷方式,如下所示
$app->register('Hello', ProxyFactory::factory(function() { /* ... */ })); // CallableActionProxy $app->register('Hello', ProxyFactory::factory('+file.php')); // IncludeActionProxy $app->register('Hello', ProxyFactory::factory('HelloWorld\\HelloController:show')); // ControllerActionProxy $app->register('Hello', ProxyFactory::factory('@service')); // ServiceActionProxy $app->register('Hello', ProxyFactory::factory('@service:method')); // ServiceControllerActionProxy
hello world应用
这可能是最简单的示例
<?php namespace HelloWorld; // we're index.php in the 'public' http folder (the doc_root) require __DIR__ .'/../vendor/autoload.php'; $app = new \Fwk\Core\Application('helloWorld'); // the easy way $app['Hello'] = function($name = null) { return 'Hello '. (!empty($name) ? $name : 'World'); }; // the above is a shortcut to this: $app->register( 'Hello', new \Fwk\Core\Action\CallableActionProxy( function($name = null) { return 'Hello '. (!empty($name) ? $name : 'World'); } ) ); // The is needed to respond to / (or index.php) $app->setDefaultAction('Hello'); // execute $response = $app->run(); if ($response instanceof \Symfony\Component\HttpFoundation\Response) { $response->send(); } else { echo $response; }
就是这样!现在打开您的浏览器到http://localhost/wherever/index.php或http://localhost/wherever/index.php?name=John+Doe !
更多文档即将推出...
贡献/社区
- 在Github上的问题:https://github.com/fwk/Events/issues
- 关注Fwk在Twitter:@phpfwk
法律
Fwk根据3条款BSD许可证授权。请阅读CREDITS和LICENSE以获取全部详细信息。