fewfar / laravel-frontend
Laravel项目的前端构建框架
1.0.1
2020-06-28 08:03 UTC
Requires
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ^5.1.4
This package is auto-updated.
Last update: 2024-09-29 05:36:27 UTC
README
Laravel包,为非生产环境提供前端模板路由。
安装
composer require fewfar/laravel-frontend
包的服务提供者在启动时将自动加载。
然后发布模板和配置文件
php artisan vendor:publish --provider="FewFar\LaravelFrontend\ServiceProvider"
这样发布的文件是结构示例,不由包强制执行。编辑 config/vendor/fewfar/frontend.php
以更改这些文件的路径。
基本用法
将以下键添加到您的 .env
文件中以启用前端路由(通常是本地和测试环境)
FRONTEND_ENABLED=true
如果此键已在您的项目中使用,您可以在 config/vendor/fewfar/frontend.php
文件中更改它。
现在您可以访问 /templates/
并查看模板。
页面默认值
在应用程序中,通常很有用,在控制器没有明确提供的情况下,从配置或数据库中加载回退变量。例如,HTML <head>
中的页面标题就是一个例子。根据您的设置,构建前端模板时可能没有定义数据库,或者您甚至不希望数据库参与。在这种情况下,您仍然希望布局模板接收这些变量,但对于所有前端模板来说,硬编码它们会更好。
为此,您可以扩展 PageDefaultsViewComposer
并在服务提供者中注册它
扩展视图组合器以实现自己的值
<?php
namespace App\Providers;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
use FewFar\LaravelFrontend\PageDefaultsViewComposer as BaseViewComposer;
class PageDefaultsViewComposer extends BaseViewComposer
{
/**
* Gets frontend default variables.
*
* @return array
*/
protected function defaultsForFrontend()
{
return [
'page' => [
'title' => 'HTML Meta Title',
'description' => 'HTML Meta Description',
...
],
];
}
/**
* Gets application default variables (i.e. ones used when not in the
* frontend templates.)
*
* @return array
*/
protected function defaultsForApp()
{
return [
'page' => [
'title' => config('app.name'),
...
],
];
}
}
注册您的视图组合器
<?php
namespace App\Http\ViewComposers;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
use App\Http\ViewComposers\PageDefaultsViewComposer;
class ViewComposerServiceProvider extends ServiceProvider
{
/**
* Register bindings in the container.
*
* @return void
*/
public function boot()
{
// Here the 'app/' directory is assumed to be all the individual pages,
// and does not contain partials, or layouts. This is because the
// composer will be ran multiple times if the Blade template extends
// from files also in the 'app/' directory.
View::composer('app/*', PageDefaultsViewComposer::class);
}
}
配置定制
此包使用 Laravel Config Provider 允许您自定义我们如何与配置交互,您可以在那里找到有关如何定制的更多详细信息。
Laravel 兼容性
开发
此包提供 Docker 设置以开发和测试自身。从此目录的根目录中,您可以运行
$ scripts/composer install
$ scripts/test
许可证
Laravel Frontend 是开源软件,许可协议为 MIT 协议。