小编Sli*_*liq的帖子

使用Composer的开发/生产开关时如何正确部署?

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并且updaterequire-dev默认情况下安装了依赖项(!),随意创建一个带有require-dev块的composer.json 并执行composer install重现.

最受欢迎的部署方式是推动作曲家.锁定(保存当前的作曲家设置),然后composer install在生产服务器上执行,这也将安装开发的东西.

安装-dev依赖项的情况下部署此方法的正确方法是什么?

注意:我正在尝试创建一个规范的Q/A,以澄清奇怪的Composer部署.随意编辑这个问题.

php deployment composer-php

159
推荐指数
3
解决办法
12万
查看次数

Netbeans 7.4每个方法规则引入"最多10行".这条规则来自哪里?

NetBeans 7.4 beta目前可供公众下载,默认情况下它引入了一个奇怪的警告规则:

方法长度为16行(允许10行)

我的问题是:这是一个公认的代码约定规则,可以在某个地方证明某种程度吗?NetBeans支持/开发人员说它不是一个bug,但是不要说明为什么它们只允许10行,以及这个规则究竟来自何处.

methods netbeans coding-style conventions

78
推荐指数
2
解决办法
3万
查看次数

CSS:怎么说.class:last-of-type [类,不是元素!]

可能重复:
如何在CSS中选择具有特定类名的"最后一个孩子"?

正如标题所说,我想将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)

这该怎么做 ?

css css-selectors css3

77
推荐指数
1
解决办法
8万
查看次数

IE11开发工具中的IE7/8/9/10仿真器在哪里?

IE11刚刚发布(作为开发人员预览版),我在IE11开发工具中找不到IE7/8/9/10模拟器.有谁知道现在在哪里找到它们?

internet-explorer ie-compatibility-mode internet-explorer-11

53
推荐指数
1
解决办法
15万
查看次数

HTML5:为什么我的"oninvalid"属性让模式失败?

这个小的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 .

你能发现错误吗?

html5 input

31
推荐指数
2
解决办法
3万
查看次数

如何使用spl_autoload()作为__autoload()进行DEPRECATED

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 deprecated autoload spl-autoloader

19
推荐指数
1
解决办法
4万
查看次数

设计模式:如何仅在需要时创建数据库对象/连接?

我有一个简单的应用程序,说它有一些类和一个处理数据库请求的"额外".目前我每次使用应用程序时都会创建数据库对象,但在某些情况下,不需要数据库连接.我这样做(PHP顺便说一句):

$db = new Database();    
$foo = new Foo($db); // passing the db
Run Code Online (Sandbox Code Playgroud)

但有时该$foo对象不需要db访问,因为只调用没有数据库操作的方法.所以我的问题是:处理这种情况的专业方法是什么/如何仅在需要时创建数据库连接/对象?

我的目标是避免不必要的数据库连接.

php oop design-patterns database-connection

19
推荐指数
1
解决办法
9844
查看次数

PHP的password_verify()是否可以安全地防止超长密码(DoS攻击)?

一般攻击情形:

在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的站点范围配置情况.

php c security hash

19
推荐指数
1
解决办法
1643
查看次数

为什么Yii2的ActiveRecord使用大量单个SELECT而不是JOIN?

根据文档,我正在使用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赏金.

php mysql orm activerecord yii2

13
推荐指数
1
解决办法
2466
查看次数

如何在PHPExcel中设置单元格填充?

有谁知道如何在PHPExcel中设置单元格填充?搜索30分钟仍然找不到合适的解决方案.没有有用的文档.

php phpexcel

8
推荐指数
2
解决办法
2万
查看次数