fwk/core

Fwk Core系统

v1.0.1 2016-06-03 12:32 UTC

This package is not auto-updated.

Last update: 2024-09-14 13:45:53 UTC


README

Scrutinizer Code Quality Build Status Code Coverage Latest Stable Version Total Downloads Latest Unstable Version License

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.phphttp://localhost/wherever/index.php?name=John+Doe !

更多文档即将推出...

贡献/社区

法律

Fwk根据3条款BSD许可证授权。请阅读CREDITS和LICENSE以获取全部详细信息。