从我所做的研究来看,我似乎无法找到格式化多行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) 我正试图掌握Joomla(3.x)框架背后的力量.
我注意到有多种类型的模型可以在组件中使用:
JModelAdmin原型管理模型.充当应用程序特定对象的Factory类,并提供许多支持API函数.
JModelLegacyJoomla模型的基类作为特定于应用程序的对象的Factory类,并提供许多支持API函数.
JModelList用于处理项目列表的模型类.充当应用程序特定对象的Factory类,并提供许多支持API函数.
JModelForm原型表单模型.充当应用程序特定对象的Factory类,并提供许多支持API函数.
JModelItem原型项目模型.
我明白这JModelLegacy似乎是基础课.我的模型JModelLegacy默认扩展,但是,我想知道我是否可以使用其他类的好处.
如果有人知道这些模型,我会很感激地解释这些模型类之间的差异,以及您将使用其他模型类的预期方案.
我在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 \框架\ …
作为一个简单的示例程序,我有一个节点脚本连续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时基于回调的循环溢出?
尽管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) 上下文
我正在https上运行一个站点,用户可以创建并共享新内容(每个条目都有自己的页面).
每个页面都有一个图像,此图像URL显示在og:image页面顶部的元标记中.
问题
Facebook似乎很慢og:image.当首次创建页面并且用户尝试共享URL时,对于前~1-3次尝试,og:image不会被Facebook刮取/呈现(标题和描述).之后,图像在共享对话框中清晰可见.
使用Facebook的OG URL调试工具时也会出现类似问题.我第一次弹出URL时,它没有显示图像.如果我选择再次从源中获取页面,则会显示图像.
补充说明
起初,我认为它可能是最初没有显示图像的站点代码,但我发送了一个curl请求并欺骗了Facebook的一个用户代理字符串(这对于访问该页面非常重要),并且生成的HTML包含og:image正确的标记图片网址.我也知道这不是什么做访问的页面,或者og:title和og:description数据不会显示(但).
我唯一的领导是它可能是SSL或HTTPS问题.我最近设置了SSL证书,但我不确定为什么会导致延迟而不能正常工作.
为了清楚起见,该站点在标准LAMP堆栈之上的WordPress上运行.
因此,我需要运行一个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)
当然,示例注释不起作用,但我想知道是否有一种方法可以让我执行类似的操作(无需在别处运行单独的查询).
当然,如果无法执行此类查询,我可以直接使用原始查询字符串.