你们想要一个带有当地海盗术语的PHP框架吗?
它是七海中最裸露的骨头框架!
http://bonemvc.delboysplace.co.uk
骨头现在在v3.x上!整个Deign o'th'船都已精简,并且更加可行!我们是PSR-11依赖项注入容器,并以模块化的方式加上PSR-15中间件路由器!跳上船!
首先确保您有作曲家!然后安装骨头。
composer create-project delboy1978uk/bonemvc your/path/here
或者,如果您还没有在全球安装作曲家...
php composer.phar create-project delboy1978uk/bonemvc your/path/here
有关如何使用Docker获取完整的开发服务器的信息,请参见下文
您可以将任意数量的.php文件放入配置/文件夹中。确保他们用配置返回数组。您可以基于环境var Application_env覆盖配置,例如,如果环境的生产将加载额外的配置子目录。
默认情况下有几个配置文件:
db.php
i18n.php
logs.php
mail.php
routes.php
templates.php
在您的配置文件中,您可以添加任何想要的内容。它存储在骨头 MVC 注册表中。
在主config/db.php中设置默认DB凭据,并在子目录中设置任何特定环境的配置
' db ' => array (
' host ' => ' 127.0.0.1 ' ,
' database ' => ' bone ' ,
' user ' => ' leChuck ' ,
' pass ' => ' bigWh00p ' ,
),然后,在您的控制器中,您可以通过说:
$ this -> getDbAdapter ();骨头支持转化为不同的地区。应该将翻译文件(getText .po和.mo )放在data/translations中,在该语言环境的子目录下,例如data/translations/en_GB/en_GB.po 。您可以设置默认场所和一系列受支持的地区。
<?php
use Zend I18n Translator Loader Gettext ;
return [
' i18n ' => [
' translations_dir ' => ' data/translations ' ,
' type ' => Gettext::class,
' default_locale ' => ' en_PI ' ,
' supported_locales ' => [ ' en_PI ' , ' en_GB ' , ' nl_BE ' , ' fr_BE ' ],
],
];要使用翻译器,您可以简单地致电:要使用翻译器,您只需致电:
<?php
// from a controller:
$ this -> getTranslator ()-> translate ( ' placeholder.string ' );
// to set locale
$ this -> getTranslator ()-> setLocale ( $ locale );
// from a view file:
$ this -> t ( ' placeholder ' );Bone使用单一/独白,并且可以在数据/日志中找到日志。目前,我们只支持写入文件,但是您可以根据自己的要求添加尽可能多的频道:
<?php
return [
' log ' => [
' channels ' => [
' default ' => ' data/logs/default_log ' ,
],
],
];在控制器中使用记录器:
$ this -> getLog ()-> debug ( $ message ) // or error(), etc, see PSR-3 Bone使用Zend Mail。要配置邮件客户端,只需放入您的配置(请参阅Zend Mail文档)
<?php
return [
' mail ' => [
' name ' => ' 127.0.0.1 ' ,
' host ' => ' localhost ' ,
' port ' => 25 ,
// 'connection_class' => 'login', // plain, login, crammd5
// 'connection_config' => [
// 'username' => 'user',
// 'password' => 'pass',
// ],
],
];如果您使用的是Bone提供的Docker盒子,则还可以使用令人敬畏的Mailhog。浏览到Awesome.Scot:8025,您会看到一个收集所有电子邮件收件箱,因此您无需担心开发电子邮件到达现实世界。
可以在您的src/文件夹中创建模块。默认模块是BoneAppAppPackage 。通过在config/packages.php中添加它们来启用模块。供应商软件包也可以通过作曲家安装,并以相同的方式启用。
至少一个模块将实现BarnacleRegistrationInterface ,如果它是包含路由的MVC模块,则它也应实现BoneRouterRouterConfigInterface 。总共有四种方法:
hasEntityPath(): bool ,如果您的模块使用学说实体返回true(需要delboy1978uk/bone-doctrine套件)getEntityPath(): string ,如果您返回true,这是您的实体类的文件夹。addToContainer(Container $c) ,如下所述addRoutes(Container $c, Router $router): Router ,下面描述您可以为您的课程创建工厂,否则您可以在您的应用程序中其他地方进行初始化。例如,控制器类可能希望将视图引擎注入其中,因此在方法中,您将添加以下内容:
$ c [MyController::class] = $ c -> factory ( function ( Container $ c ) {
$ view = $ c -> get (PlatesEngine::class);
return new MyController ( $ view );
});依赖注入容器是delboy1978uk/barnacle ,它实际上是丘疹扩展并实现PSR-11。
Bone MVC使用league/route ,PSR-15中间件库。路线被添加在您的包装中:
/**
* @param Container $c
* @param Router $router
* @return Router
*/
public function addRoutes ( Container $ c , Router $ router ): Router
{
$ router -> map ( ' GET ' , ' / ' , [IndexController::class, ' indexAction ' ]);
$ router -> map ( ' GET ' , ' /learn ' , [IndexController::class, ' learnAction ' ]);
return $ router ;
}查看他们的文档以获取有关路由器使用的更多信息
avast是的!我们是Th'Cap'n(Delboy1978uk)的一些额外libs,即:
delboy1978uk/cdn
delboy1978uk/form
delboy1978uk/generator
delboy1978uk/image
delboy1978uk/session
您可以使用DelCdn快速回声JavaScript和CSS,请参见AppViewlayoutsbonemvc.php fer示例。
另请参见使用DelIcon和DelCss ,作为CDN LIB的一部分。
Ye可以创建自定义的引导式准备形式delboy1978uk/form ,请参见GitHub页面详细信息。
Ye可以快速制作一个新的模块USIN'TH'发电机CLI命令。
Ye可以使用DelImage类操纵图像usin'Th'GD PHP功能。
您可以设置会话变量DelSessionManager ,请参阅GitHub有关信息。