我想做什么:从数据库获取CSS属性并将其转储到较少的文件中.然后在其上应用较少的/ yui压缩过滤器,并将输出转储到我的树枝模板中.

让我马上来到这里:

我有一个PHP Web应用程序使用Silex和Twig作为模板引擎.为了处理和缩小css / js文件,我试图使用Assetic和Silex-Twig / Assetic-Extensions.

我已经注册了silex扩展名,并设置了我想要使用的过滤器.现在我不知道如何将文件转储到我的枝条模板中. Google搜索让我在黑暗中.由于lessfile中的属性可以根据请求进行更改,我认为没有办法静态传递文件.

这是我实现的silex扩展:

$oApp = new Silex\Application();

//$oApp['autoloader']->registerNamespace('Assetic',DIR_vendOR.'/assetic/src');
//$oApp['autoloader']->registerNamespace('SilexExtension',DIR_vendOR.'/silex-extension/src');
//$oApp['autoloader']->registerNamespace('Twig',DIR_vendOR.'/twig/lib');

$oApp->register(
    new Silex\Provider\TwigServiceProvider(),array(
        'twig.path' => DIR_ROOT.'/src/templates','twig.class_path' => DIR_vendOR.'/twig/lib',),new SilexExtension\AsseticExtension(),array(
        'assetic.class_path' => DIR_vendOR.'/assetic/src','assetic.path_to_web' => DIR_ASSETS,'assetic.options' => array(
            'debug' => false,'formulae_cache_dir' => DIR_TMP.'/Assetic/cache','twig_support' => true
        ),'assetic.filters' => $oApp->protect(function($fm) {
            $fm->set('yui_css',new Assetic\Filter\Yui\CssCompressorFilter(
                DIR_YUI.'/yuicompressor-2.4.7.jar'
            ));
            $fm->set('yui_js',new Assetic\Filter\Yui\JsCompressorFilter(
                DIR_YUI.'/yuicompressor-2.4.7.jar'
            ));
            $fm->set('googlecc_js',new Assetic\Filter\GoogleClosure\CompilerJarFilter(
                DIR_GOOGLE_CC.'/compiler.jar'
            ));
        }),'assetic.assets' => $oApp->protect(function($am,$fm) {
            $am>-set('styles',new Assetic\Asset\AssetCache(
                new Assetic\Asset\GlobAsset(
                    __DIR__ . '/resources/css/*.css',array($fm->get('yui_css'))
                ),new Assetic\Cache\FilesystemCache(DIR_TMP.'/Assetic/cache')
            ));
            $am->get('styles')->setTargetPath(DIR_ASSETS.'/css/styles.css');
        })
    )
);

由于CSS文件通过较少的过滤器进行处理(变量值应来自数据库),因此我需要保存/缓存输出文件.我想我需要的是一个LazyAssetManager与一个将Output.css写入缓存目录的AssetWriter结合使用.但是我真的很努力地得到正确的包含我的twig模板内的语法.以下实现似乎不起作用:

{% stylesheets 'path/to/my/css' 'another/path/to/my/css' filter='yui_css' output='path/to/output/directory/styles.css' %}
<link href="{{ asset_url }}" rel="stylesheet" media="screen" />
{% endstylesheets %}

我感谢每一次关于我的关注.

由于(你提到)较少的文件中的属性可以根据请求改变,我认为你是错过的(甚至更少).听起来你正在尝试使用assetic作为一个较少的预处理器,缓存结果不是很少的理由(这取决于每个请求实际上会有多大的不同).

您不需要详细了解您想要实现的内容,但是我会发现它像主题引擎,用户可以在其中更改其配色方案(和其他外观变量).如果是这种情况,我想你应该将大部分的CSS /较少的文件放在一个模板中,所有请求都是通用的,然后在你的silex应用程序中有一个路由,用DB从变量提供主题特定的css.

由于每个请求可能会有所不同,我认为没有理由为每个请求在服务器上添加更少的预处理开销,因此您应该输出直接的CSS.最多可以让客户端处理.less文件,如果你很舒服.

php – 使用Silex / SilexExtensions和Assetic的Twig中的动态CSS / Javascript的更多相关文章

  1. css绝对定位如何在不同分辨率下的电脑正常显示定位位置?(一定要看!)

    这篇文章主要介绍了css绝对定位如何在不同分辨率下的电脑正常显示定位位置,本文首先解释了常见的电脑分辨率,为了页面在不同的分辨率下正常显示,要给页面一个安全宽度,再去使用绝对定位,具体操作步骤大家可查看下文的详细讲解,感兴趣的小伙伴们可以参考一下。

  2. 详解HTML5中CSS外观属性

    这篇文章主要介绍了HTML5中CSS外观属性的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,,需要的朋友可以参考下

  3. CSS中实现动画效果-附案例

    这篇文章主要介绍了 CSS中实现动画效果并附上案例代码及实现效果,就是CSS动画样式处理,动画声明需要使用@keyframes name,后面的name是人为定义的动画名称,下面我们来看看文章的具体实现内容吧,需要的小伙伴可以参考一下

  4. amaze ui 的使用详细教程

    这篇文章主要介绍了amaze ui 的使用详细教程,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. Html5自定义字体解决方法

    这篇文章主要介绍了Html5自定义字体解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  6. 前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)

    这篇文章主要介绍了前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. CSS多级数字序号的目录列表(2.2.1. 2.2.2 列表序号)

    这篇文章主要介绍了CSS多级数字序号的目录列表(2.2.1. 2.2.2 列表序号),通过css代码定义将数字多级列表展示出来,,需要的朋友可以参考下

  8. CSS position属性和实例应用演示

    这篇文章主要介绍了CSS position属性和实例应用演示,absolute(绝对定位),relative(相对定位),relative与absolute的结合使用以及fixed(固定定位),需要的朋友可以参考下

  9. HTML5 图片悬停放大的实现代码示例

    这篇文章主要介绍了HTML5 图片悬停放大的实现代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  10. amazeui页面分析之登录页面的示例代码

    这篇文章主要介绍了amazeui页面分析之登录页面的示例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部