lightgear / asset
Laravel 4 的简单资产管理
Requires
- php: >=5.3.0
- illuminate/support: 4.*
- leafo/lessphp: 0.4.*
- mrclay/minify: 2.1.*
This package is not auto-updated.
Last update: 2024-09-10 00:31:06 UTC
README
由于现在有更好的处理资源的方式,该项目已被弃用。
我已切换到 Gulp.js 并不会再回退。
此存储库将被保留,以防有人在生产中使用它。
Laravel 4 的简单且有效的资源管理
概述
Lightgear/Asset 软件包旨在简化基于 Laravel 4 的应用程序的基本资源的创建和维护。
特性
- 支持的资源类型:"less", "css"" 和 "javascript" 文件。我并不打算添加对其他类型如 CoffeeScript 的支持,仅仅因为我想要尽可能保持软件包的体积最小。
- 合并和压缩(两种操作的任何组合)都完全支持
- 提供简单但有效的 缓存 支持。这避免了在每个请求中生成资源。需要在配置中打开缓存(因为你可能只想在生产中这样做)。
- 资源组
安装
通过 Laravel 4 软件包安装器
php artisan package:install lightgear/asset
手动
在你的 composer.json 中 require
"lightgear/asset": "1.1"
然后运行
composer update
然后注册服务提供者
'Lightgear\Asset\AssetServiceProvider'
以及在 app/config/app.php 中可选的别名
'Asset' => 'Lightgear\Asset\Facades\Asset'
使用
发布配置
php artisan config:publish lightgear/asset
这将创建 app/config/packages/lightgear/asset/config.php 文件。
最后创建配置文件中指定的 "public_dir" 目录,并给予它完全的写入权限。
使用方法
您只需使用 registerStyles() 或 registerScripts() 方法之一注册您的资源。重要:资源需要在始终加载的文件中注册(例如,在一个软件包的 ServiceProvider 中)。例如,在您的服务提供者中注册软件包资源,您可以使用如下代码:
/** * Register the service provider. * * @return void */ public function register() { $styles = array( 'src/assets/styles', 'src/assets/pure/pure/pure-min.css' ); $asset = $this->app->make('asset'); // register styles of a vendor package and assign them // to the default "general" group $asset->registerStyles($styles, 'vendor/package'); // register styles of a vendor package and assign them // to the "frontend" group $asset->registerStyles($styles, 'vendor/package', 'frontend'); // the same goes with scripts for whom you would use for example $asset->registerScripts(array('src/scripts')), 'vendor/package'); }
或者,您可以使用以下代码注册位于 app/assets 的资源
Asset::registerStyles(array( 'css/shared.less' ) ); or Asset::registerScripts(array( 'js/shared.js' ) );
如您在示例中所见,文件和目录都可以注册。值得注意的是,目录是递归添加的。
配置
一些配置选项允许您自定义资源的处理方式。请参阅 src/config/config.php 以获取详细信息。
模板化
您可以使用以下方式在(blade)模板中打印资源:
// prints all the registered styles {{ Asset::styles() }} // prints only the "frontend" group {{ Asset::styles('frontend') }} // prints the "frontend" and "mygroup" groups {{ Asset::styles(array('frontend', 'mygroup')) }}
并且相同的语法也用于脚本
{{ Asset::scripts() }}
Artisan 命令
该软件包包含 2 个命令
php artisan asset:clean
该命令删除所有已发布和缓存的资源
php artisan asset:generate
该命令生成并发布已注册的资源
权限
如果您在运行上述命令时遇到权限问题,那是因为运行 artisan 的用户与通过 web 服务器(例如 www-data)生成资源的用户不同。该问题在 https://symfony.ac.cn/doc/current/book/installation.html#configuration-and-setup 中有更详细的解释。要解决这个问题,只需遵循此页面上的步骤即可。例如,在 Ubuntu 上,我从项目根目录运行以下命令
sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX public/assets sudo setfacl -dR -m u:www-data:rwX -m u:`whoami`:rwX public/assets
当使用缓存时,您需要做同样的操作
sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/storage sudo setfacl -dR -m u:www-data:rwX -m u:`whoami`:rwX app/storage
更新日志
1.1: Laravel 4.1 兼容性
1.0: 添加对资源组的支持并改进缓存处理
0.8: 首次发布