小编Sea*_*ean的帖子

使用PHPDoc显示多行@param的正确方法是什么?

从我所做的研究来看,我似乎无法找到格式化多行phpdoc @param线的正确方法.建议的方法是什么?

这是一个例子:

/**
 * Prints 'Hello World'.
 *
 * Prints out 'Hello World' directly to the output.
 * Can be used to render examples of PHPDoc.
 *
 * @param string $noun Optional. Sends a greeting to a given noun instead.
 *                     Input is converted to lowercase and capitalized.
 * @param bool   $surprise Optional. Adds an exclamation mark after the string.
 */
function helloYou( $noun = 'World', $surprise = false ) {

    $string = 'Hello ' . ucwords( strtolower( …
Run Code Online (Sandbox Code Playgroud)

php documentation phpdoc

27
推荐指数
1
解决办法
6669
查看次数

Joomla模型类型有什么区别?

我正试图掌握Joomla(3.x)框架背后的力量.

我注意到有多种类型的模型可以在组件中使用:


JModelAdmin

原型管理模型.充当应用程序特定对象的Factory类,并提供许多支持API函数.

JModelLegacy

Joomla模型的基类作为特定于应用程序的对象的Factory类,并提供许多支持API函数.

JModelList

用于处理项目列表的模型类.充当应用程序特定对象的Factory类,并提供许多支持API函数.

JModelForm

原型表单模型.充当应用程序特定对象的Factory类,并提供许多支持API函数.

JModelItem

原型项目模型.


我明白这JModelLegacy似乎是基础课.我的模型JModelLegacy默认扩展,但是,我想知道我是否可以使用其他类的好处.

如果有人知道这些模型,我会很感激地解释这些模型类之间的差异,以及您将使用其他模型类的预期方案.

php model-view-controller joomla model joomla3.0

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

在单元测试中处理Laravel HttpException

我在Laravel中进行单元测试的一个测试函数不断出错.我试图声明在没有满足某些条件的情况下请求特定页面会触发403 FORBIDDEN错误.

我的测试用例函数是这样的:

public function testNoAjaxCall() {

    $this->call('POST', 'xyz', array());

    $this->assertResponseStatus(403);

}
Run Code Online (Sandbox Code Playgroud)

在控制器操作中,这是路由到,我有这样的:

if(!Input::has('ajax') || Input::get('ajax') != 1) {

    // Drop all 'non-ajax' requests.
    App::abort(403, 'Normal POST requests to this page are forbidden. Please explicitly tell me you\'re using AJAX by passing ajax = 1.');

}
Run Code Online (Sandbox Code Playgroud)

运行phpunit返回以下内容:

1)RaceTest :: testNoAjaxCall

Symfony\Component\HttpKernel\Exception\HttpException:禁止对此页面发送正常的POST请求.请明确告诉我你通过传递ajax = 1来使用AJAX.

[路径\到\ laravel] \厂商\ laravel \框架\ SRC \照亮\基金会\ Application.php:875

[编辑堆栈跟踪]

[路径\到\ laravel] \厂商\ symfony的\ HTTP内核\的Symfony \元器件\ HttpKernel\Client.php:81

[路径\到\ laravel] \厂商\ symfony的\浏览器的试剂盒\的Symfony \元器件\ BrowserKit\Client.php:325

[路径\到\ laravel] \厂商\ laravel \框架\ …

php unit-testing symfony laravel laravel-4

7
推荐指数
2
解决办法
6427
查看次数

避免基于承诺的循环中的递归堆栈溢出?

作为一个简单的示例程序,我有一个节点脚本连续ping服务器,并希望这个程序可以运行很长时间.

该程序设置为ping函数,返回一个promise对象.根据ping是否工作或失败,解决或拒绝承诺.

我希望此函数在循环中运行,因此无论ping是否成功,都会在解决上一个请求的一段时间触发下一个ping .

问题本身不是这个任务,但我关心的是我的实现.我相信它最终会导致堆栈溢出.

这里有一些代码可以看到发生了什么:

function doPing(host) {
    // returns a promise object.
}

function doEvery(ms, callback, callbackArgs) {

    setTimeout(function() {

        callback.apply(null, callbackArgs)
            .always(function() {

                doEvery(ms, callback, callbackArgs);

            });

    }, ms);

}

doEvery(1000, doPing, [host]);
Run Code Online (Sandbox Code Playgroud)

我试图限制代码只是为了反映以下问题的范围:

这会最终导致堆栈溢出吗?是否有一种模式可以防止使用promises时基于回调的循环溢出?

javascript recursion loops node.js promise

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

PHPUnit未生成其三叶草覆盖率报告

尽管phpunit支持该--coverage-clover [file]参数,但似乎什么也没做。

我有Jenkins在此服务器上运行,带有用于PHP的三叶草覆盖插件。

这是我的输出:

> phpunit --coverage-clover coverage.xml
................................                                  32 / 32 (100%)

Time: 745 ms, Memory: 16.75Mb

> ls -l
(coverage.xml is not present)
Run Code Online (Sandbox Code Playgroud)

我正在寻找找出为什么根本没有生成三叶草XML文件且没有错误消息的原因。即使使用该--debug标志也不会产生与三叶草报告相关的信息。

版本信息:

> phpunit --version
PHPUnit 5.0.5 by Sebastian Bergmann and contributors.

> php --version
PHP 5.6.14-1+deb.sury.org~trusty+1 (cli)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    with the ionCube PHP Loader + Intrusion Protection from ioncube24.com v.5.0.4, Copyright (c) 2002-2015, by ionCube Ltd.
    with Zend …
Run Code Online (Sandbox Code Playgroud)

php phpunit clover jenkins jenkins-plugins

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

Facebook的Open Graph刮刀缓慢获取og:image?

上下文

我正在https上运行一个站点,用户可以创建并共享新内容(每个条目都有自己的页面).

每个页面都有一个图像,此图像URL显示在og:image页面顶部的元标记中.

问题

Facebook似乎很慢og:image.当首次创建页面并且用户尝试共享URL时,对于前~1-3次尝试,og:image不会被Facebook刮取/呈现(标题和描述).之后,图像在共享对话框中清晰可见.

使用Facebook的OG URL调试工具时也会出现类似问题.我第一次弹出URL时,它没有显示图像.如果我选择再次从源中获取页面,则会显示图像.

补充说明

起初,我认为它可能是最初没有显示图像的站点代码,但我发送了一个curl请求并欺骗了Facebook的一个用户代理字符串(这对于访问该页面非常重要),并且生成的HTML包含og:image正确的标记图片网址.我也知道这不是什么做访问的页面,或者og:titleog:description数据不会显示(但).

我唯一的领导是它可能是SSL或HTTPS问题.我最近设置了SSL证书,但我不确定为什么会导致延迟而不能正常工作.

为了清楚起见,该站点在标准LAMP堆栈之上的WordPress上运行.

php wordpress ssl facebook-opengraph

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

Joomla:使用JDatabaseQuery来表示插入..选择查询?

因此,我需要运行一个long(ish)查询,根据数据库中其他位置的另一行的值,将新行插入表中.这是在Joomla 3.1.5中运行的

通常,您可以使用MySql的INSERT .. SELECT语法轻松完成此操作,但我正在寻找一种方法来接近Joomla的查询构建器,例如:

<?php

// ...

// Base Tables & Columns.

$my_table = '#__my_table';

$columns = array('column_one', 'column_two');

// Set up the database and query.

$db = JFactory::getDBO();

$query = $db->getQuery(true);

// Escape / quote the table name.
$my_table = $db->quoteName($my_table);

// Escape all columns.
$cols = array_map(array($db, 'quoteName'), $cols);

$query
    ->insert($my_table)
    ->columns($columns)
    // E.g. ->select( ... )->from( ... ) ...

$db->setQuery($query);

$result = $db->query();

// ...

?>
Run Code Online (Sandbox Code Playgroud)

当然,示例注释不起作用,但我想知道是否有一种方法可以让我执行类似的操作(无需在别处运行单独的查询).

当然,如果无法执行此类查询,我可以直接使用原始查询字符串.

php mysql joomla

0
推荐指数
1
解决办法
1066
查看次数