Composer可以选择仅在开发时加载多个依赖项,因此这些工具不会安装在生产环境中(在实时服务器上).对于仅在开发中有意义的脚本(如测试,伪数据工具,调试器等),这(理论上)非常方便.
要做的就是require-dev
使用dev中需要的工具添加一个额外的块:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
Run Code Online (Sandbox Code Playgroud)
然后(理论上)通过加载这些依赖
composer install --dev
Run Code Online (Sandbox Code Playgroud)
Composer已经改变了2013年的行为,install
并且update
在require-dev
默认情况下安装了依赖项(!),随意创建一个带有require-dev
块的composer.json 并执行composer install
重现.
最受欢迎的部署方式是推动作曲家.锁定(保存当前的作曲家设置),然后composer install
在生产服务器上执行,这也将安装开发的东西.
在不安装-dev依赖项的情况下部署此方法的正确方法是什么?
注意:我正在尝试创建一个规范的Q/A,以澄清奇怪的Composer部署.随意编辑这个问题.
NetBeans 7.4 beta目前可供公众下载,默认情况下它引入了一个奇怪的警告规则:
方法长度为16行(允许10行)
我的问题是:这是一个公认的代码约定规则,可以在某个地方证明某种程度吗?NetBeans支持/开发人员说它不是一个bug,但是不要说明为什么它们只允许10行,以及这个规则究竟来自何处.
正如标题所说,我想将css规则添加到具有某个类的某个类型的最后一个元素.以下代码完美运行:
div:last-of-type { margin-right:0; }
Run Code Online (Sandbox Code Playgroud)
但我想要类似的东西
div.class:last-of-type { margin-right:0; }
Run Code Online (Sandbox Code Playgroud)
这该怎么做 ?
IE11刚刚发布(作为开发人员预览版),我在IE11开发工具中找不到IE7/8/9/10模拟器.有谁知道现在在哪里找到它们?
internet-explorer ie-compatibility-mode internet-explorer-11
这个小的HTML5密码字段完美地工作,没有oninvalid属性(模式说:最少6个字符):
<form>
<input type="password" name="user_password_new" pattern=".{6,}" required />
<input type="submit" name="register" value="Register" />
</form>
Run Code Online (Sandbox Code Playgroud)
在这里查看jsFiddle .
但是当我添加一个oninvalid属性,当用户的输入不符合模式时会发出自定义错误消息,整个字段永远不会变为有效,请参阅此处的代码:
<form>
<input type="password" name="user_password_new" pattern=".{6,}" oninvalid="setCustomValidity('Minimum length is 6 characters')" required />
<input type="submit" name="register" value="Register" />
</form>
Run Code Online (Sandbox Code Playgroud)
在这里查看jsFiddle .
你能发现错误吗?
据http://php.net/manual/en/language.oop5.autoload.php神奇功能__autoload()将在即将到来的PHP版本变得过时和已删除(!).官方替代方案是spl_autoload().见http://www.php.net/manual/en/function.spl-autoload.php.但是php手册没有解释这个宝宝的正确使用方法.
我的问题:如何替换这个(我的自动类自动加载器)
function __autoload($class) {
include 'classes/' . $class . '.class.php';
}
Run Code Online (Sandbox Code Playgroud)
使用spl_autoload()的版本?问题是:我无法弄清楚如何给该函数一个路径(它只接受命名空间).
顺便说一下:SO.com上有很多关于这个话题的主题,但没有一个提供干净简单的解决方案来取代我的性感单行.
我有一个简单的应用程序,说它有一些类和一个处理数据库请求的"额外".目前我每次使用应用程序时都会创建数据库对象,但在某些情况下,不需要数据库连接.我这样做(PHP顺便说一句):
$db = new Database();
$foo = new Foo($db); // passing the db
Run Code Online (Sandbox Code Playgroud)
但有时该$foo
对象不需要db访问,因为只调用没有数据库操作的方法.所以我的问题是:处理这种情况的专业方法是什么/如何仅在需要时创建数据库连接/对象?
我的目标是避免不必要的数据库连接.
一般攻击情形:
在2013年,Django有一个普遍的漏洞,因为攻击者可以通过非常大的密码创建极其强大的CPU计算[ 请参阅此处的安全声明 ].在使用PHP的password_verify()和其他密码散列方法而不进行任何进一步检查时,我不确定这是否仍然可行.
PHP文档说:
对algo参数使用PASSWORD_BCRYPT将导致密码参数被截断为最大长度为72个字符.
但是,PHP的代码MAYBE说了一些不同的东西:
然而,PHP 5.5.0的password_verify()函数背后的C代码并不直接限制传递的参数(可能在bcrypt算法中更深层次?).此外,PHP实现不限制参数.
问题:
是password_verify() (同样的功能集和其他功能),通过刷爆了POST参数防范DoS脆弱?还请考虑POST上载大小远大于4MB的站点范围配置情况.
根据文档,我正在使用Yii2的ActiveRecord实现(希望)完全按照应该使用的方式.
在一个非常简单的设置中,表之间有简单的关系,获取10个结果很快,100个很慢.1000是不可能的.数据库非常小,索引完美.问题绝对是Yii2请求数据的方式,而不是数据库本身.
我正在使用标准的ActiveDataProvider,如:
$provider = new ActiveDataProvider([
'query' => Post::find(),
'pagination' => false // to get all records
]);
Run Code Online (Sandbox Code Playgroud)
使用Yii2工具栏进行调试显示数以千计的单个SELECT,用于一个简单的请求,它应该从表A获得50行,一些简单的"JOIN"到表B到表C.在普通的SQL中,每个人都会用一个SQL语句和两个连接来解决这个问题. .然而,Yii2为每一行中的每个关系激活一个SELECT(这对于保持ORM清洁是有意义的).导致(或多或少)1*50*30 = 1500个查询,只获得每行的两个关系.
为什么Yii2使用这么多单一的SELECT,或者这是我的错误?另外,有人知道如何"修复"这个吗?
由于这对我来说是一个非常重要的问题,我将在5月14日提供500赏金.
有谁知道如何在PHPExcel中设置单元格填充?搜索30分钟仍然找不到合适的解决方案.没有有用的文档.
php ×6
activerecord ×1
autoload ×1
c ×1
coding-style ×1
composer-php ×1
conventions ×1
css ×1
css3 ×1
deployment ×1
deprecated ×1
hash ×1
html5 ×1
input ×1
methods ×1
mysql ×1
netbeans ×1
oop ×1
orm ×1
phpexcel ×1
security ×1
yii2 ×1