线林 / extension-for-laravel
为 Laravel 开发扩展
This package is not auto-updated.
Last update: 2024-09-24 21:44:47 UTC
README
ExtensionForLaravel
📦 。
需求
- PHP >=5.5.9
- laravel/framework >=5.1.*
- Composer
- openssl 扩展
- pdo 扩展
- fileinfo 扩展(素材管理模块需要用到)
安装
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"
用法
基本使用
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
这样就完成了安装,打开 https:///phpinfo 访问这个扩展
更多请参考 https://gitee.com/King_first/extension-for-laravel/。
文档
许可
MIT