国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

Laravel Packages開發

2020-03-22 18:31:19
字體:
來源:轉載
供稿:網友
  •   Packages是向Laravel中添加功能最重要的途徑。composer.json中require的都是包。關于包的詳細說明請查看API. 下面一起創建一個簡單的Package :

      1. 環境配置

      我們以Artisan的workbench命令來創建一個Package ,首先要配置app/confg/workbench.php  

    1 <?php2 3 return array(4 5     'name' => 'brudeke',    6 7     'email' => 'xxxxxxxx@163.com',8 9 );

     

     2. 創建Package

      其中vendor是廠商名稱,用于區別相同名稱的包;package是要創建的包名;  

    1 php artisan workbench vendor/package --resources

      執行以上命令后會在根目錄出現workbench目錄,其中workbench/vendor/package/src/Vendor/Package目錄下會自動生成PackageServiceProvider.php(以下稱此文件為引導類),該文件相當于包的引導類。

      

      3. 在包中添加功能類

      在這里我們在包中添加一個工具類,在“引導類”的同級創建Utils/Turbo.php  

     1 <?php  2  3 namespace Vendor/Package/Utils; 4  5 use Illuminate/Http/RedirectResponse; 6  7 html' target='_blank'>class Turbo { 8  9     public function __construct() {}10 11     public function setUp(){12         echo "this is a tool";13     }    14 }

      4. 創建Facades

      Facades的功能就是美化類,可以使成員函數以靜態成員的方式調用,在引導類同級創建Facades/Turbo.php  

     1 <?php  2 namespace Vendor/Package/Facades; 3  4 use Illuminate/Support/Facades/Facade; 5  6 class Turbo extends Facade { 7  8     protected static function getFacadeAccessor() { 9         return 'turbo';10     }11 }

      

      5. 綁定功能類到Ioc容器

      修改引導類如下,其中$defer是表示延遲加載服務提供器。  

     1 <?php  2 namespace Vendor/Package; 3  4 use Illuminate/Support/ServiceProvider; 5  6 class PackageServiceProvider extends ServiceProvider { 7  8     /** 9      * Indicates if loading of the provider is deferred.10      *11      * @var bool12      */13     protected $defer = true;14 15     /**16      * Bootstrap the application events.17      *18      * @return void19      */20     public function boot(){21         $this->package('vendor/package');22     }23 24     /**25      * Register the service provider.26      *27      * @return void28      */29     public function register(){30         $this->app->bindShared('turbo', function(){31             return new /Vendor/Package/Utils/Turbo;32         });33     }34 35     /**36      * Get the services provided by the provider.37      *38      * @return array39      */40     public function provides()41     {42         return array('turbo');43     }44 45 }

      

      6.修改配置app/config/app.php

      在providers數組中添加以下代碼:

    1 "providers" => array(2     'Vendor/Package/PackageServiceProvider',      3 ),

      在aliases數組中添加別名Turbo:

    1 'aliases' => array(2     'Turbo'            =>  'Vendor/Package/Facades/Turbo',3 ),

      接下來就可以在項目任何地方以Turbo::setUp()的形式運用包了。

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 盐池县| 武汉市| 唐山市| 阿克陶县| 新疆| 湘潭市| 怀柔区| 天长市| 安顺市| 扬州市| 龙海市| 汨罗市| 舟山市| 阜阳市| 米易县| 秦安县| 江津市| 永寿县| 枝江市| 朝阳县| 鄯善县| 惠东县| 延吉市| 西乌| 公安县| 东乡县| 凌云县| 青浦区| 宁德市| 通山县| 南木林县| 三江| 东平县| 商都县| 鄂伦春自治旗| 安顺市| 玉龙| 永宁县| 南开区| 成都市| 疏附县|