先貼出地址,回頭詳細記錄
github地址:https://github.com/ghoiufyia/laravel-package-yuntongxun.git
packageist地址:https://packagist.org/packages/shangning/yuntongxun
laravel的IOC容器和依賴注入,和提供的一個統一的服務的概念,可以極大的減輕開發工作量,當然你對於laravel的核心還要仔細研究,這個庫也只是我依樣畫葫蘆的嘗試,實現這個東西,一方面是能實現功能,另一方面也是希望通過這個過程,能深入的理解laravel容器的原理,及其運行過程,乃至於其實現。
YuntongxunServiceProvider.php中boot方法中是需要發佈的資源,包括配置文件,一些資源文件等,register方法中調用的是singleton
。跳進singleton的實現代碼,然後
參照其它自帶provider,實現。
$this->app->singleton('yuntongxun', function ($app) {
return new Yuntongxun($app['config']);
});
下面是singleton的方法說明:
/**
* Register a shared binding in the container.
*
* @param string $abstract
* @param \Closure|string|null $concrete
* @return void
*/
public function singleton($abstract, $concrete = null);
這是簡陋的provider實現,功能簡單,還需要結合研究laravel的代碼,實現更復雜的功能。目標是實現功能,但更需要學習代碼框架設計的思路。