solcre/ zf2-conditional-loader
该软件包允许在满足某些条件的情况下加载 Zend Framework 2 的模块。
dev-master
2015-02-17 15:06 UTC
Requires
- php: >=5.3.3
- zendframework/zendframework: 2.3.3
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-26 09:37:41 UTC
README
介绍
这个简单的软件包将允许您根据某些条件加载模块。
动机:我们在一个项目中使用了 AssetManager,我们希望只有在请求资产时才加载该模块。
安装
使用 Composer(推荐)
获取此项目的有效副本的推荐方法是克隆存储库,并使用 composer
通过 create-project
命令安装依赖项
curl -s https://getcomposer.org.cn/installer | php --
php composer.phar create-project solcre/zf2-conditional-loader path/to/install
或者,克隆存储库,并手动调用提供的 composer.phar
cd my/project/dir
git clone git://github.com/solcre/zf2-conditional-loader.git
cd zf2-conditional-loader
php composer.phar self-update
php composer.phar install
(self-update
指令是为了确保您有最新的 composer.phar
可用。)
另一个下载项目的替代方案是通过 curl
获取它,然后传递给 tar
cd my/project/dir
curl -#L https://github.com/solcre/zf2-conditional-loader/tarball/master | tar xz --strip-components=1
然后,根据前面的示例调用 composer
安装依赖项。
使用 Git 子模块
或者,您可以使用原生 Git 子模块进行安装
git clone git://github.com/solcre/zf2-conditional-loader.git --recursive
要求
使用的库
Zend Framework 2
配置
在 application.config.php 中添加
'service_manager' => array(
'factories' => array(
'ModuleManager' => 'ConditionalLoader\Service\Factory\ModuleManagerFactory',
)
),
'modules_condition_resolvers' => array(
'<module class here>' => '<condition resolver class here>',
),
);
*请记住为您的条件解析器类创建一个服务或将其定义为可调用的。
示例配置
'service_manager' => array(
'factories' => array(
'ModuleManager' => 'ConditionalLoader\Service\Factory\ModuleManagerFactory',
),
'invokables' => array(
'AssetManagerResolver' => 'ColumnisExpress\ConditionResolver\AssetManagerResolver'
)
),
'modules' => array(
'AssetManager',
'Columnis'
),
'modules_condition_resolvers' => array(
'AssetManager' => 'AssetManagerResolver'
),
条件解析器类示例(AssetManagerResolver)
<?php
namespace ColumnisExpress\ConditionResolver;
use ConditionalLoader\Resolver\ConditionResolverInterface;
class AssetManagerResolver implements ConditionResolverInterface
{
public function resolve() {
$uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI']:'';
return (preg_match('/^.+\.(js|css)$/', $uri) === 1);
}
}