您好,欢迎访问一九零五行业门户网

laravel5.4中自定义包开发的实例

本篇文章给大家分享的内容是关于如何在laravel 5.1中进行自定义包的开发,步骤很清晰,有着一定的参考价值,希望可以帮助到有需要的朋友。
1、安装laravel
已安装laravel的略过本步骤,未安装的参考laravel安装文档:laravel 5.1安装及配置
2、创建目录和服务提供者
在根目录下创建文件夹 packages/jai/contact/src
进入src目录并创建一个服务提供者contactserviceprovider.php:
<?php namespace jai\contact;use illuminate\support\serviceprovider;use illuminate\routing\router;class contactserviceprovider extends serviceprovider{ /** * indicates if loading of the provider is deferred. * * @var bool */ protected $defer = false; public function boot() { $this->loadviewsfrom(realpath(__dir__.'/../views'), 'contact'); $this->setuproutes($this->app->router); // this for conig $this->publishes([ __dir__.'/config/contact.php' => config_path('contact.php'), ]); } /** * define the routes for the application. * * @param \illuminate\routing\router $router * @return void */ public function setuproutes(router $router) { $router->group(['namespace' => 'jai\contact\http\controllers'], function($router) { require __dir__.'/http/routes.php'; }); } public function register() { $this->registercontact(); config([ 'config/contact.php', ]); } private function registercontact() { $this->app->bind('contact',function($app){ return new contact($app); }); }}
创建路由
在src目录下新建一个http目录并在其中创建一个routes.php:
<?phproute::get('contact', 'contactcontroller@index');
创建控制器
在http目录下新建controllers目录并在其中创建控制器contactcontroller.php:
<?php namespace jai\contact\http\controllers;use app\http\controllers\controller;use illuminate\support\facades\config;class contactcontroller extends controller{ /** * show the application welcome screen to the user. * * @return response */ public function index() { dd(config::get("contact.message")); return view('contact::contact'); }}
创建配置文件
在src目录下新建config目录并在其中创建配置文件contact.php:
<?php return [ "message" => "welcome to your new package" ];
创建视图文件
在packages/jai/contact目录下创建views文件夹,并在其中创建视图文件template.blade.php:
<html> <head> <meta charset="utf-8"> <title>title</title> </head> <body> @yield('content') </body></html>
和视图文件contact.blade.php:
@extends('contact::template')@section('content')laravel academy@stop
最终生成的目录结构如下:
3、添加包路径到composer.json
在根目录下修改composer.json,将"jai\\contact\\": "packages/jai/contact/src/"添加到psr-4:
"psr-4": { "app\\": "app/", "jai\\contact\\": "packages/jai/contact/src/"}
4、注册服务提供者
在laravel应用根目录下修改config/app.php,将服务提供者追加到providers数组:
jai\contact\contactserviceprovider::class
5、加载包并发布资源
完成上述操作之后还要在命令行执行两个命令,首先在应用根目录下运行
composer dump-autoload
来更新composer的autoloader,然后运行
php artisan vendor:publish
将自定义包的配置文件发布到应用根目录的config目录下以便可以访问。
6、在浏览器中测试
完成上述操作后即可在浏览器中访问http://laravel.app:8000/contact,页面输出如下:
"welcome to your new package"
修改contactcontroller.php的代码如下:
//dd(config::get("contact.message"));return view('contact::contact');
则页面输出为:
laravel academy
至此,表明我们的自定义包开发完成并通过测试。
相关推荐:
laravel5.4框架中vue.js实现ajax的表单提交错误验证
laravel框架内置的broadcast功能如何实现与客户端实时通信
以上就是laravel5.4中自定义包开发的实例的详细内容。
其它类似信息

推荐信息