你們想要一個帶有當地海盜術語的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有關信息。