小编Hec*_*nez的帖子

PHPStorm代码提示对象数组的数组

在PHPStorm中,对象数组的代码提示简单而且令人敬畏;

class FooList {
    public function __construct(){
        $this->_fooList[] = new Foo(1);
        $this->_fooList[] = new Foo(2);
        $this->_fooList[] = new Foo(3);
        $this->_fooList[] = new Foo(4);
    }

    /**
     * @return Foo[]
     */
    getFoos() {
        return $this->_fooList;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以如果我......

$fooList = new FooList();

foreach($fooList as $foo)
{
    // Nice hinting.
    $foo->FooMethod...
}
Run Code Online (Sandbox Code Playgroud)

PHPStorm理解$ fooList是一个Foos数组,因此知道$ foo的类型是Foo.

问题是我想要一个FooList数组.

$listOfLists[] = new FooList();
$listOfLists[] = new FooList();
$listOfLists[] = new FooList();
$listOfLists[] = new FooList();

foreach ($listOfLists as $fooList)
{
    foreach($fooList as $foo)
    {
        // No …
Run Code Online (Sandbox Code Playgroud)

php code-hinting phpstorm

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

Apache 2.4没有加载php5.5与Mac OS 10.8

我试图在Mac Mac 10.8.5的Mini Mac中使用Apache 2.4.7和php5.5

Apache 2.4.7按照此处的说明安装

运行apachectl -v,显示

Server version: Apache/2.4.7 (Unix)
Server built:   Mar  4 2014 19:23:56
Run Code Online (Sandbox Code Playgroud)

PHP5.5按照此处的说明安装

运行php -v,显示

 PHP 5.5.8 (cli) (built: Jan 12 2014 18:50:29) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
Run Code Online (Sandbox Code Playgroud)

我在apache http.conf文件中添加了以下行

LoadModule php5_module /usr/local/php5/libphp5.so
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用,因为当我尝试启动服务器时

sudo apachectl start
Run Code Online (Sandbox Code Playgroud)

它会产生以下错误

httpd: Syntax error …
Run Code Online (Sandbox Code Playgroud)

php apache macos

5
推荐指数
1
解决办法
9588
查看次数

用npm安装CKEditor

我正在尝试在我的项目中安装CKEditor.我正在使用Laravel.

我知道我可以下载文件,但我喜欢让我的生活变得困难,我决定将CKEditor安装为npm依赖项.

正如他们在这里的文档中所述,我将包添加到package.json,如下所示:

"dependencies": {
    "jquery": "^1.11.1",
    "bootstrap-sass": "^3.0.0",
    "elixir-coffeeify": "^1.0.3",
    "laravel-elixir": "^4.0.0",
    "font-awesome": "^4.5.0",
    "ckeditor": "^4.5.7"
}
Run Code Online (Sandbox Code Playgroud)

现在我想我必须在app.coffee中要求它,所以我尝试了:

window.$ = window.jQuery = require('jquery')
require('bootstrap-sass')
require('ckeditor')
Run Code Online (Sandbox Code Playgroud)

这肯定会将ckeditor.js脚本添加到我的app.js. 但是ckeditor似乎有自己的依赖项,例如config.js或editor.css,当然服务器对这些请求的响应为404.

我怎么能这样安装CKeditor?

谢谢!

ckeditor node.js laravel gulp laravel-elixir

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

$ foo === TRUE和TRUE === $ foo有什么区别?

我明白,在下面的代码中......

$foo = TRUE;
$bar = 1;

if ($foo === TRUE)
{
    echo 'Foo';
}

if ($bar === TRUE)
{
    echo 'Bar';
}
Run Code Online (Sandbox Code Playgroud)

...因为类型比较,只会打印Foo.

但是,我的问题是......

if ($foo === TRUE)
{
    echo 'Foo1';
}
if (TRUE === $foo)
{
    echo 'Foo2';
}
Run Code Online (Sandbox Code Playgroud)

...因为据我所知,它们是一样的,但我记得在某个地方读过它们不是.我只是在梦想有关PHP的奇怪内容,还是实际上有区别?

谢谢!

php boolean

3
推荐指数
1
解决办法
212
查看次数

或 偏好随回报而改变

从我所看到的,运算符优先级在这两个示例中是有意义的:

$a = false;
$b = true;
$c = $a || $b;
Run Code Online (Sandbox Code Playgroud)

这里 $c 是真的

$a = false;
$b = true;
$c = $a or $b;
Run Code Online (Sandbox Code Playgroud)

这里 $c 是假的


我明白这背后的原因。但是以下内容:

$a = false;
$b = true;
return $a or $b;
Run Code Online (Sandbox Code Playgroud)

返回 true,这让我很困惑。

这是什么原因?

php operator-precedence comparison-operators

3
推荐指数
1
解决办法
44
查看次数

如何使用 Codeception 挂钩 beforeSuite 事件进行 API 验收测试?

我正在使用 Codeception 构建 API 验收测试。

我熟悉那里的单元测试,并且在运行类的所有测试之前,我在这些类中使用了 setUp 方法来实现所需的所有逻辑。

但是我没有找到类似的验收测试。

请注意,我使用的是“类”方法,而不是过程方法。

所以我有一个这样的课程...

class ResourceCest {
    public function _beforeSuite(ApiTester $I)
    {
        // Ideally this would work, but it doesn't.
    }

    public function _before(ApiTester $I) 
    {
        $I->am('Api Tester');
    }
    public function somethingThatIWantToExecute(ApiTester $I)
    {
        $I->sendGet('something');
        // etc
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以创建像 setUp 这样的方法,但随后 Codeception 将其作为测试执行,从而在运行测试时输出一些内容。

api acceptance codeception

2
推荐指数
1
解决办法
2752
查看次数