先贴出地址,回头详细记录
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的代码,实现更复杂的功能。目标是实现功能,但更需要学习代码框架设计的思路。