在Yii中使用资产的正确方法是什么? - php

我注意到Yii在资产目录中创建了一组奇怪的目录集(名称如8523d23或10s89b92),这甚至在运行时发生。例如,我的一个表获得了10条以上的记录,开始了分页,并且我在资产子目录pager.css中获得了一个新文件。

当我将网站从测试迁移到生产时,应该复制所有这些内容,还是仅创建一个空的“资产”目录,并在运行时将其填充?

例如,如果要添加一些新的jQuery插件,我应该如何进行?

例如,我希望添加jquery.charcounter.js,是否将其复制到资产或yii/framework/web/js/source?如果执行后者,如何将这个.js文件包含在HTML页面输出中?

参考方案

assets应该是可写目录。 Yii负责资产管理。

通过调用Yii::app()->assetManager->publish(),可以将某些样式表,图像,脚本甚至整个目录放入Web可见的文件夹中。

pager.css和其他不熟悉的文件由小部件(例如CLinkPager)和其他组件(例如CClientScript在需要时发布jQuery)生成。

在部署过程中,该文件夹应该为空,但这并不重要。

绝对不要通过框架文件夹添加插件。您可以将它们放置在components目录中,并在需要时将其发布,也可以将其发布到任何其他方便的可见目录中(例如imagescss)。

更新资料

要嵌入jquery.charcounter.js,请将其放入components目录,然后调用

Yii::app()->clientScript->registerScriptFile(
    Yii::app()->assetManager->publish(
        Yii::getPathOfAlias('application.components').'/jquery.charcounter.js'
    ),
    CClientScript::POS_END
);

关于奇怪的文件夹名称,我坚信它们是唯一的哈希(或哈希的一部分),因此如果应用程序使用多个扩展名,则可以区分它们。

jQuery Ajax和php类 - php

我正在尝试学习如何在php中使用oop。我对jQuery也很陌生。是否可以向php类方法发出Ajax请求?我只将Ajax请求发送到专门用于此目的的文件,并且返回我需要的数据。 参考方案 简短答案:不可以。长答案:Ajax只是一个使用JavaScript从浏览器发出HTTP请求而无需离开页面的术语。您唯一可以“呼叫”的是URL。您可以编写PHP以根据URL来执…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

PHP-服务器端验证-这是一个好方法吗? - php

我已经通过jQuery的帮助进行了广泛的客户端验证。现在进入服务器端验证,如果我发现某些字段无效,是否可以简单地将错误返回给客户端并且没有任何有用的消息?我的假设是用户必须启用JavaScript才能访问我的网页。如果Web浏览器禁用了JavaScript,则用户将看不到该表单。我可以简单地使用noscript来做到这一点。如果他们通过我设计的表单提交信息,…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…