zoukankan      html  css  js  c++  java
  • laravel扩展包开发步骤总结

    1. 创建包
    1
    php artisan workbench vendor/package --resources
        注:  vendor:开发商名   package:包名
     
    2.修改下包里composer.json中的authors
     
    1
    2
    3
    4
    5
    6
    "authors": [
        {
            "name""cicl",
            "email""test@126.com"
        }
    ]
    3. 为创建的包注册ServiceProvider
    在项目根目录执行 php artisan dump-autoload
    在app/config/app.php文件里的provides数组中添加该包,将VendorPackagePackageServiceProvider添加到providers数组.
    为了方便我们的使用,我们在app/config/app.php的aliases中增加一个别名: 'Package' => 'VendorPackageFacadesNotification',
    启动开发服务器: php artisan serve ,如果成功启动,如显示:Laravel development server started on http://localhost:8000,则扩展包的基础搭建就成功了。
           基本的扩展包结构:
            /src
                /Vendor
                    /Package
                        PackageServiceProvider.php
                /config
                /lang
                /migrations
                /views
            /tests
            /public

    4、为本包添加独立路由文件,只需在PackageServiceProvider中的boot函数中添加如下代码,并在包的根目录创建routes.php文件

    1
    2
    3
    4
    public function boot(){   
        $this->package('vendor/package');   
        include __DIR__.'/../../routes.php';
    }

    路由文件如下所示: 

    1
    Route::get('test',  function(){    return "this is test";});
    现在,在浏览器里输入地址如:http://localhost:8000/test,就会输出“this is test”。
     
    5.接下来尝试使用Controller
        新建路由如下: 
    1
    Route::get('testtwo',array('as' => 'testtwo','uses' => 'VendorPackageControllersPackageController@getTest'));
    6、在controllers 中新建RegistrationController.php文件,代码如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    namespace CclLenonControllers;
    use IlluminateRoutingController;
    use IlluminateSupportFacadesView;
     
    Class LenonController extends Controller {
         public function getTest() {
             return "控制器测试";
         }
    }
     
    尝试打开页面,提示找不到控制器,Laravel默认是不自动查找任何目录的,需要开发者自己指定文件的存放目录,不过它也给出了建议路径,比如在使用artisan workbench的时候是不是生成了src/controllers目录呢,Ok,我们添加自动加载路径即可。
    7、在包的根目录的composer.json的autoload下classmap字段增加"src/controllers",如:
    1
    2
    3
    4
    "classmap": [
           "src/migrations",
           "src/controllers"
    ],
    并在项目根目录运行 php artisan dump-autoload,刷新页面就好了。

    8、接下来我们要使用views文件!按照我们理解我们只需要修改controller中代码,如下: 

    1
    2
    3
    4
    public function getRegister()   
        return View::make('test');
    }
    在包src/views/ 下创建 test.blade.php文件,并在文件中写入相关页面代码,例: <h1>这是测试视图的文件</h1>
    刷新页面,发现并没有成功,在Laravel中,是不会自动索引包中的视图文件的,所以我们还需要做一点点工作!

    9、在载入视图的时候指定他去包中寻找视图文件即可,修改controller中代码如下:

    1
    2
    3
    4
    public function getRegister()   
    {
        return View::make('package::test');   
    }

    再次刷新页面,我们期待的页面出现了,

     
    public迁移     
    1
    php artisan asset:publish --bench="vendor/package"
     
    创建数据库迁移
    1
    php artisan migrate:make create_users_table --bench="vendor/package"

    执行数据库迁移

    1
    php artisan migrate --bench="vendor/package"
  • 相关阅读:
    973. K Closest Points to Origin
    919. Complete Binary Tree Inserter
    993. Cousins in Binary Tree
    20. Valid Parentheses
    141. Linked List Cycle
    912. Sort an Array
    各种排序方法总结
    509. Fibonacci Number
    374. Guess Number Higher or Lower
    238. Product of Array Except Self java solutions
  • 原文地址:https://www.cnblogs.com/bainiu/p/7681176.html
Copyright © 2011-2022 走看看