Owl Admin 中文文档


开发

<h2><strong>创建扩展</strong></h2> <p>在扩展管理中使用 <code>创建扩展</code> 来生成一个扩展的骨架。</p> <p>配置相应的报名及命名空间,然后点击 <code>确认</code> 即可。</p> <h3><strong>格式</strong></h3> <ul> <li>包名: 作者名/扩展名 (例如: slowlyo/banner)</li> <li>命名空间: 作者名\扩展名 (例如: Slowlyo\Banner)</li> </ul> <p>扩展包创建完成后,会在 <code>extensions</code> 目录下生成一个扩展包的骨架,目录结构如下:</p> <pre><code> ├── .gitignore ├── composer.json # composer配置文件, 需要自行配置alias/authors/description等信息, 用于展示 ├── README.md # 扩展说明文档, 可以在扩展管理中查看 ├── database │ └── migrations # 数据库迁移文件, 与laravel的迁移文件一致 ├── public │ └── extensions # 扩展前端文件, 会发布到 public/extensions 目录下 │ └── slowlyo │ └── banner └── src ├── BannerServiceProvider.php # 扩展服务提供者 └── Http ├── routes.php # 扩展路由 ├── Middleware # 扩展中间件 └── Controllers # 扩展控制器 └── BannerController.php</code></pre> <p>&lt;br&gt;</p> <h2><strong>配置</strong></h2> <h3><strong>logo</strong></h3> <p>在插件根目录下添加 <code>logo.png</code> 文件,用于在扩展管理中展示。</p> <h3><strong>文档</strong></h3> <p>根目录的 <code>README.md</code> 文件, 会在扩展管理中展示。</p> <h3><strong>composer.json</strong></h3> <table> <thead> <tr> <th>字段</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>alias</td> <td>扩展名称(在扩展管理中以这个为主)</td> </tr> <tr> <td>authors</td> <td>作者信息</td> </tr> <tr> <td>description</td> <td>描述信息</td> </tr> <tr> <td>version</td> <td>版本号</td> </tr> <tr> <td>homepage</td> <td>扩展主页</td> </tr> </tbody> </table> <p>&lt;br&gt;</p> <h2><strong>功能开发</strong></h2> <h3><strong>路由</strong></h3> <p>你可以在 <code>extensions/扩展名/src/Http/routes.php</code> 文件中定义扩展的路由。 &gt; 注意避免重复</p> <h3><strong>菜单</strong></h3> <p>在<code>src/BannerServiceProvider.php</code> 中添加 <code>$menu</code> 属性:</p> <pre><code class="language-php">protected $menu = [ [ 'parent' =&amp;gt; '', 'title' =&amp;gt; '轮播', 'url' =&amp;gt; '/banner', 'url_type' =&amp;gt; '1', 'icon' =&amp;gt; 'fa fa-users', ], [ 'parent' =&amp;gt; '轮播', // 此处父级菜单根据 title 查找 'title' =&amp;gt; '子菜单', 'url' =&amp;gt; '/banner/child', 'url_type' =&amp;gt; '1', 'icon' =&amp;gt; 'fa fa-users', ], ];</code></pre> <h3><strong>语言包</strong></h3> <p>在扩展目录下创建 <code>lang</code> 目录, 逻辑与laravel的语言包一致, 例如:</p> <pre><code> ├── lang │ ├── zh-CN │ │ └── banner.php │ └── en │ └── banner.php</code></pre> <p>在控制器中可以通过下面的方法访问语言包内容,关于多语言的更多用法可以参考 laravel 官方文档</p> <pre><code class="language-php">use Slowlyo\Banner\BannerServiceProvider; BannerServiceProvider::trans('title');</code></pre> <h3><strong>前端</strong></h3> <p>你可以在服务提供者中使用 <code>Admin::js()</code> 方法来动态加载你的前端文件 [<code>register()</code> / <code>init()</code>]</p> <h3><strong>中间件</strong></h3> <p>在<code>src/BannerServiceProvider.php</code> 中添加 <code>$middleware</code> 属性:</p> <pre><code class="language-php">protected $middleware = [ LogOperation::class, // ... ];</code></pre> <h3><strong>扩展配置</strong></h3> <p>在<code>src/BannerServiceProvider.php</code> 中有以下方法, 依葫芦画瓢即可:</p> <pre><code class="language-php">public function settingForm() { return $this-&amp;gt;baseSettingForm()-&amp;gt;body([ TextControl::make()-&amp;gt;name('value')-&amp;gt;label('Value')-&amp;gt;required(true), // 继续添加你的配置项 ]); }</code></pre> <p>你可以使用 <code>setting</code> 方法来获取配置项的值:</p> <pre><code class="language-php">use Slowlyo\Banner\BannerServiceProvider; // 读取配置参数 $except = BannerServiceProvider::setting('except'); // 支持多级配置 $except = BannerServiceProvider::setting('except.value');</code></pre> <h3><strong>数据库迁移</strong></h3> <p>在 <code>extensions/扩展名/database/migrations</code> 目录下创建迁移文件</p> <p>扩展启用时会自动执行迁移文件, 卸载时会自动回滚</p> <h3><strong>其他</strong></h3> <p>基础的服务提供者中提供了 <code>customInitBefore</code> 和 <code>customInitAfter</code> 两个方法, 用于扩展的自定义初始化操作</p> <h3><strong>发布到 Packagist.org</strong></h3> <p>参考 <a href="https://learnku.com/docs/composer/2018">Packagist 中文文档</a></p>

页面列表

ITEM_HTML