xianlin/extension-for-laravel

There is no license information available for the latest version (v1.0.1-beta) of this package.

make extension for laravel

v1.0.1-beta 2021-06-21 10:48 UTC

This package is not auto-updated.

Last update: 2025-06-18 01:42:40 UTC


README

EasyWeChat Logo

ExtensionForLaravel

📦 。

Requirement

  1. PHP >=5.5.9
  2. laravel/framework >=5.1.*
  3. Composer
  4. openssl 拓展
  5. pdo 拓展
  6. fileinfo 拓展(素材管理模块需要用到)

Installation

1.composer 安装

$ composer require xianlin/extension-for-laravel dev-master

2.在laravel config/app.php 的providers里添加服务提供者

$ Xianlin\ExtensionForLaravel\ExtensionServiceProvider::class

3.发布配置

$  php artisan vendor:publish --provider="Xianlin\ExtensionForLaravel\ExtensionServiceProvider"

Usage

基本使用:

1.创建扩展包
```shell
$ php artisan extension:create xianlin/phpinfo --namespace=XianLin\PHPInfo
```

其中xianlin/phpinfo是包名,namespace选项是这个包使用的顶级命名空间,运行这个命令之后, 将会在在config/extension.php中设置的扩展目录中生成目录xianlin/phpinfo和下面的文件结构

   ├── LICENSE
       ├── README.md
       ├── composer.json
       ├── database
       │   ├── migrations
       │   └── seeds
       ├── resources
       │   ├── assets
       │   └── views
       │       └── index.blade.php
       ├── routes
       │   └── web.php
       └── src
           ├── PHPInfo.php
           ├── PHPInfoServiceProvider.php
           └── Http
               └── Controllers
                   └── PHPInfoController.php
      1.resources用来放置视图文件和静态资源文件,  
      2.src主要用来放置逻辑代码,   
      3.routes/web.php用来存放这个扩展的路由设置,  
      4.database用来放置数据库迁移文件和数据seeders。
2. 功能开发

这个扩展的功能主要用来将PHP中的phpinfo函数所显示的页面,集成进系统应用中,它将会有一个路由和一个视图文件,没有数据库文件和静态资源文件,我们可以将没有用到的文件或目录清理掉,清理之后的目录文件为:

      ├── LICENSE
        ├── README.md
        ├── composer.json
        ├── resources
        │   └── views
        │       └── index.blade.php
        ├── routes
        │   └── web.php
        └── src
            ├── PHPInfo.php
            ├── PHPInfoServiceProvider.php
            └── Http
                └── Controllers
                    └── PHPInfoController.php

生成完扩展框架之后,你可能需要一边调试一边开发,所以可以参考下面的 3.1 本地扩展安装 ,先把扩展安装进系统中,继续开发

2.1 添加路由

首先添加一个路由,在routes/web.php中已经自动生成好了一个路由配置

<?php

Route::get('phpinfo', PHPInfoController::class.'@index');

XianLin\PHPInfo\Http\Controllers\PHPInfoController控制器的index方法来处理这个请求。

2.2 加载视图

如果这个扩展需要加载视图文件,在src/PHPInfoServiceProvider.php的handle方法中加入以下的代码:

if ($views = $extension->views()) {
    $this->loadViewsFrom($views, 'phpinfo');
}

loadViewsFrom方法的的第一个参数为在扩展类src/PHPInfo.php中设置的视图属性,第二个参数是视图文件目录的命名空间,设置为phpinfo之后,在控制器中用view('phpinfo::index')来加载resources/views目录下的视图文件

2.3 引入静态资源

如果你的项目中有静态资源文件需要引入,先把文件放在resources/assets目录中,比如放入resources/assets/foo.js和resources/assets/bar.css这两个文件

接着在扩展类src/PHPInfo.php中设置$assets属性

    public $assets = __DIR__.'/../resources/assets';

然后在src/PHPInfoServiceProvider.php的handle方法中设置发布目录

if ($this->app->runningInConsole() && $assets = $extension->assets()) {
    $this->publishes(
        [$assets => public_path('vendor/xianlin/phpinfo')],
        'phpinfo'
    );
}

安装完成之后,运行php artisan vendor:publish --provider=Xianlin\PHPInfo\PHPInfoServiceProvider,文件将会复制到public/vendor/xianlin/phpinfo目录中。

2.4 代码逻辑开发

在 Extensions\xianlin\phpinfo 下可以增加所需要的代码业务逻辑

3 扩展安装
3.1 本地扩展安装

在开发的过程中,一般需要一边调试一边开发,所以先按照下面的方式进行本地安装

"repositories": [
    {
        "type": "path",
        "url": "app/extensions/xianlin/phpinfo"
    }
]

然后运行 以下命令之一 完成安装

composer require xianlin/phpinfo

或者

composer require xianlin/phpinfo @dev

或者

composer require xianlin/phpinfo dev-master

如果有静态文件需要发布,运行下面的命令

php artisan vendor:publish --provider=Xianlin\PHPInfo\PHPInfoServiceProvider

这样就完成了安装,打开http://localhost/phpinfo 访问这个扩展

更多请参考 https://gitee.com/King_first/extension-for-laravel/

Documentation

License

MIT