Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用公共资产为Composer创建PHP库_Php_Repository_Composer Php - Fatal编程技术网

使用公共资产为Composer创建PHP库

使用公共资产为Composer创建PHP库,php,repository,composer-php,Php,Repository,Composer Php,我正在为客户端创建模板库。该库的目标是为该公司拥有的所有网站提供一个标准化的外壳。其他开发人员应能够使用Composer导入库,并使用几行代码创建基本模板,例如: $Template = new Template; $Template->setContent('Hello world!'); $Template->render(); 这将呈现标准化shell中的内容。这是一个简化的示例,该库提供了更多功能,如标准化的滑块、菜单等 这个库依赖于细枝,但它也依赖于一堆前端资产;像自定义

我正在为客户端创建模板库。该库的目标是为该公司拥有的所有网站提供一个标准化的外壳。其他开发人员应能够使用Composer导入库,并使用几行代码创建基本模板,例如:

$Template = new Template;
$Template->setContent('Hello world!');
$Template->render();
这将呈现标准化shell中的内容。这是一个简化的示例,该库提供了更多功能,如标准化的滑块、菜单等

这个库依赖于细枝,但它也依赖于一堆前端资产;像自定义图像、javascripts、css和第三方的东西,比如Jquery和Bootstrap css。这些资产存储在/assets/文件夹中

使用Composer安装库之后,所有内容都存储在/vendors/文件夹中,该文件夹位于网站的根目录中。但是/assets/文件夹需要在/public\u html/中才能访问


目前的解决方案是:只需将/assets/文件夹复制到/public_html/。但我确信,依赖于前端资产的存储库会更多,在/public\u html/?中使用这些资产的最常见方法是什么?

我想到的是Symfony2捆绑系统。您定义的每个捆绑包都必须在AppKernel中注册。如果捆绑包包含将在/web/bundles/short\u bundle\u name/文件夹下链接或复制的资产

因此,为了能够跟踪依赖项的资产,您需要某种注册机制,这样您就可以注册哪些libs有需要复制/链接到public_html文件夹下的资产


也可以考虑使用ASSET处理你的纯资产(合并、重写和其他过滤器),缓存缓存功能。

< P>你可以使用<代码>作曲家<代码>的后端依赖性和<代码> Bower <代码>为你的前端,和<代码> Grutt<代码>移动和处理文件。

使用
Composer
可以将以下内容添加到
Composer.json

"scripts": {
    "post-install-cmd": [
        "bower install",
        "grunt"
    ],
    "post-update-cmd": [
        "bower install",
        "grunt"
    ]
}
{
    "name": "my/project",
    "dependencies": {
        "jquery": "*",
        "bootstrap": "*"
    }
}
然后就是基本的
Bower
script
bowser.json

"scripts": {
    "post-install-cmd": [
        "bower install",
        "grunt"
    ],
    "post-update-cmd": [
        "bower install",
        "grunt"
    ]
}
{
    "name": "my/project",
    "dependencies": {
        "jquery": "*",
        "bootstrap": "*"
    }
}
然后是basic
Grunt
script
gruntfile.js
,您可以这样使用它()

现在,您只需运行composer命令即可安装或更新所有文件

注意:如果您的所有资产都在
Composer