使用公共资源

时间:2016-03-29 13:40:20

标签: php repository composer-php

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

$Template = new Template;
$Template->setContent('Hello world!');
$Template->render();

这将在标准化shell中呈现内容。这是一个简化的示例,该库提供了更多功能,如标准化滑块,菜单等......

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

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

现在的解决方案:只需将/ assets /文件夹复制到/ public_html /。但我确信有更多的存储库取决于前端资产,在/ public_html /中提供这些资产的最常用方法是什么?

2 个答案:

答案 0 :(得分:0)

我想到的关闭事物是Symfony2 Bundle系统。您定义的每个包必须在AppKernel中注册。如果捆绑包包含将在/ web / bundles / short_bundle_name /文件夹下链接或复制的资产。

因此,为了能够跟进您的依赖项资产,您将需要某种注册表机制,因此您可以注册哪些库具有需要在public_html文件夹下复制/链接的资产。

还可以考虑使用assetic来处理普通资产(合并,重写和其他过滤器)以及缓存破坏功能。

答案 1 :(得分:0)

您可以将前端依赖项Composer和前端Bower组合使用,Grunt组合移动和处理文件。

Composer您将以下内容添加到composer.json

"scripts": {
    "post-install-cmd": [
        "bower install",
        "grunt"
    ],
    "post-update-cmd": [
        "bower install",
        "grunt"
    ]
}

然后你有基本的Bower脚本bowser.json

{
    "name": "my/project",
    "dependencies": {
        "jquery": "*",
        "bootstrap": "*"
    }
}

然后你有基本的Grunt脚本gruntfile.js,你就可以使用它(https://github.com/gruntjs/grunt-contrib-copy)。

copy: {
  main: {
    expand: true,
    src: 'src/*',
    dest: 'dest/',
  },
},

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

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

,则不需要使用Composer
相关问题