Laravel如何创建服务器提供者实例代码
发布:smiling 来源: PHP粉丝网 添加日期:2021-11-18 17:47:59 浏览: 评论:0
这篇文章主要给大家介绍了关于Laravel如何创建服务器提供者的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
前言
Laravel服务器容器:是用于管理类依赖和执行依赖注入的工具。下面我们演示下如何创建服务器提供者,它是Laravel的核心,话不多说了,来一起看看详细的介绍吧
在app/Contracts目录下创建TestContract.php文件,其内容为:
- <?php
- namespace App\Contracts;
- interface TestContract {
- public function callMe($controller);
- }
在app/Services目录下创建TestService.php文件,其内容为:
- <?php
- namespace App\Services;
- use App\Contracts\TestContract;
- class TestService implements TestContract {
- public function callMe($controller){
- dd("Call me from TestServiceProvider in ".$controller);
- }
- }
在config/app.php文件中providers中添加内容,以便进行注册:
...
App\Providers\RiakServiceProvider::class,
创建1个服务提供类:
php artisan make:provider RiakServiceProvider
其内容为:
- <?php
- namespace App\Providers;
- use App\Services\TestService;
- use Illuminate\Support\ServiceProvider;
- class RiakServiceProvider extends ServiceProvider
- {
- /**
- * Bootstrap the application services.
- *
- * @return void
- */
- public function boot()
- {
- //
- }
- /**
- * Register the application services.
- *
- * @return void
- */
- public function register()
- {
- $this->app->bind("App\Contracts\TestContract",function(){
- return new TestService();
- });
- }
- }
在ServiceProvider中提供了2个方法,其中register方法用于注册服务,而boot用于引导服务。
在控制器IndxController中添加如下内容:
- <?php
- namespace App\Http\Controllers;
- use App;
- use Illuminate\Http\Request;
- use App\Contracts\TestContract;
- class IndexController extends Controller
- {
- public function __construct(TestContract $test){
- $this->test = $test;
- }
- public function index(){
- $this->test->callMe("IndexController");
- }
- }
访问浏览器可以得到如下的结果:
"Call me from TestServiceProvider in IndexController"
另外,还可以使用App的make方法进行调用。
- public function index(){
- $test = App::make('test');
- $test->callMe('IndexController');
- }
其结果也是一样的。
参考文章:
https://laravelacademy.org/post/796.html
https://laravelacademy.org/post/93.html
Tags: Laravel创建服务器
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)