itsgoingd/slim-facades

"静态"接口,用于各种Slim功能

v1.0 2013-12-16 21:44 UTC

This package is auto-updated.

Last update: 2024-08-25 07:00:05 UTC


README

SlimFacades 是一个针对 Slim PHP 微型框架 的外观集合,提供简单“静态”接口以访问各种Slim功能。

例如,将这个

$app->get('/hello-world', function()
{
	$app = Slim::getInstance();
	$app->view()->display('hello.html', array('name' => $app->request()->get('name', 'world')));
})

转换为这个

Route::get('/hello-world', function()
{
	View::display('hello.html', array('name' => Input::get('name', 'world')));
})

此库基于 Laravel 4 Facade 类,有关外观的更多信息请参阅 Laravel 文档

安装

要安装最新版本,只需将其添加到您的 composer.json

"itsgoingd/slim-facades": "dev-master"

安装包后,您需要初始化外观类

require 'vendor/autoload.php';

use SlimFacades\Facade;

$app = new Slim\Slim();

// initialize the Facade class

Facade::setFacadeApplication($app);
Facade::registerAliases();

// now you can start using the facades

Config::set('debug', true);

Route::get('/hello/:name', function($name)
{
	View::display('hello.html', array(
		'name' => Input::get('name', $name)
	));
});

App::run();

以下外观可用:

App

  • 用于 Slim 实例及其附加方法的外观
  • make($key) - 从 Slim 的 DI 容器中返回 $key
$request = App::make('request');
App::flash('message', 'Som Kuli, ovladam kozmicku lod.');
App::halt();

Config

  • 用于 Slim 实例及其附加方法的外观
  • get($key) - 返回 $app->config($key) 的值
  • set($key, $value = null) - 调用 $app->config($key, $value)
$debug = Config::get('debug');
Config::set('log.enable', true);

Input

  • 用于 Slim\Http\Request 实例及其附加方法的外观
  • file($name) - 返回 $_FILES[$name],如果没有在请求中发送文件,则返回 null
$username = Input::get('username', 'default');
$password = Input::post('password');
$avatar = Input::file('avatar');

Log

  • 用于 Slim\Log 实例的外观
Log::info('Tomi Popovic predava miliony albumov po celom svete.');
Log::debug('Okamizte na pozorovanie.');

Request

  • 用于 Slim\Http\Request 实例的外观
if (Request::isAjax()) { ... }
$host = Request::headers('host', 'localhost');
$path = Request::getPath();

Response

  • 用于 Slim\Http\Response 实例的外观
Response::redirect('/success');

Route

  • 用于 Slim\Router 实例及其方法的外观
  • map, get, post, put, patch, delete, options, group, any - 调用 Slim 实例上的方法
Route::get('/users/new', 'UsersController:index');
Route::post('/users', 'UsersController:insert');

View

  • 用于 Slim\View 实例的外观
View::display('hello.html');
$output = View::render('world.html');

自定义外观

您可以通过扩展 SlimFacades\Facade 类来创建自定义外观。

class MyFacade extends SlimFacades\Facade
{
	// return the name of the component from the DI container
	protected static function getFacadeAccessor() { return 'my_component'; }
}

您可以通过传递别名给 Facade::registerAliases() 函数来注册自定义外观。

Facade::registerAliases(array(
	'App'      => 'SlimFacades\App',
	'Config'   => 'SlimFacades\Config',
	'Input'    => 'SlimFacades\Input',
//	'Log'      => 'SlimFacades\Log',
	'Log'      => 'CustomLogFacade',
	'Request'  => 'SlimFacades\Request',
	'Response' => 'SlimFacades\Response',
	'Route'    => 'SlimFacades\Route',
	'View'     => 'SlimFacades\View',
));

请注意,通过 Facade::registerAliases() 调用带有别名列表将仅注册指定的外观,如果您想同时注册默认外观和自定义外观,您可以调用该函数两次,一次带数组参数,一次不带。

链接

许可证

版权所有 (c) 2013 Miroslav Rigler

MIT 许可证

特此授予任何人免费获得本软件及其相关文档文件(以下简称“软件”)的副本的权利,以便在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、转授和/或销售软件副本,并允许向提供软件的人提供这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论该责任是基于合同行为、侵权行为或其他原因,无论该责任是否与软件或其使用或其他方式相关。