PHP 7引入了返回类型声明.这意味着我现在可以指示返回值是某个类,接口,数组,可调用或新的可阻塞标量类型之一,这对于函数参数是可能的.
function returnHello(): string {
return 'hello';
}
Run Code Online (Sandbox Code Playgroud)
通常情况下,值并不总是存在,并且您可能返回某种类型的某些内容,或者返回null.虽然您可以通过将其默认值设置为null(DateTime $time = null)来使参数可为空,但似乎没有办法为返回类型执行此操作.确实如此,或者我不知道怎么做?这些不起作用:
function returnHello(): string? {
return 'hello';
}
function returnHello(): string|null {
return 'hello';
}
Run Code Online (Sandbox Code Playgroud) 我有一个狭长的图像,我想在GitHub上的README.md文件的右上角显示.我一直在尝试几种方法来使它正确对齐并且目前有
<p align="right">
<img src="doc/subpagelist.png" />
</p>
Run Code Online (Sandbox Code Playgroud)
这是因为图像在右侧对齐,但是相当无用,因为Markdown文件中图像下方的所有内容都显示在图像的底部,而不是显示在图像的左侧.
有没有办法让文本在图像周围流动(没有删除标题和段落)?
我知道我在这里问了一些严肃的问题......
我有一些课程Foo和一个课程Bar延伸Foo.在Foo我有一个构造函数的一组参数,它设置为它的领域.派生类Bar通常不需要修改它.现在我的IDE给了我"Foo中没有默认构造函数".从谷歌搜索中看,这似乎是因为"构造函数不是继承的".所以一切都很好,但是我现在如何在不重复每个派生类的构造函数的情况下使用它?我假设有一个更理智的方法?
var exec = require('child_process').exec;
exec(
'pwd',
{
cdw: someDirectoryVariable
},
function(error, stdout, stderr) {
// ...
}
);
Run Code Online (Sandbox Code Playgroud)
我正在做上面的事情(虽然当然运行"pwd"不是我最终想要做的).这将最终将父进程的pwd写入stdout,无论我为cdw选项提供什么值.
我错过了什么?
(我确实确保传递路径作为cwd选项实际存在)
我有一个使用ServiceB的ClassA.在某种情况下,ClassA最终不应该调用任何ServiceB方法.我现在想测试这个并且确实没有确实调用任何方法.
这可以按如下方式完成:
$classA->expects( $this->never() )->method( 'first_method' );
$classA->expects( $this->never() )->method( 'second_method' );
...
Run Code Online (Sandbox Code Playgroud)
有没有办法简单地说"不应该在这个对象上调用方法"而不是必须为每个方法指定一个限制?
我想在JS中做一些资源密集的任务.对于这个问题,我们假设它们是一些繁重的计算,而不是系统访问.现在我想同时运行任务A,B和C,并在完成后执行一些功能D.
该异步库为此提供了一个很好的脚手架:
async.parallel([A, B, C], D);
Run Code Online (Sandbox Code Playgroud)
如果我正在做的只是计算,那么它仍将同步运行(除非库将任务放在不同的线程上,我预计不是这种情况).我该如何让它实际上是平行的?通常由异步代码完成的事情是什么,以阻止调用者(使用NodeJS时)?它是否开始了儿童过程?
javascript parallel-processing multithreading asynchronous node.js
ruby 2.0.0p247(2013-06-27修订版41674)[x86_64-linux]
宝石2.0.3
sudo gem install travis
Building native extensions. This could take a while...
ERROR: Error installing travis:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from extconf.rb:4:in `<main>'
Gem files will remain installed in /var/lib/gems/1.9.1/gems/ffi-1.9.0 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/ffi-1.9.0/ext/ffi_c/gem_make.out
Run Code Online (Sandbox Code Playgroud)
在尝试安装其他宝石时也会遇到这种情况.我不是Ruby用户,谷歌搜索错误并没有让我得到任何有效的解决方案.
我使用RVM安装了Ruby 2.0:"curl -L https://get.rvm.io | bash -s stable --ruby".
如果我做"sudo ruby -v"我得到"ruby 1.9.3p194(2012-04-20 revision 35410)[x86_64-linux]".
每当文件在磁盘上发生变化时,我都想运行我的PHPUnit测试(或者至少是它们的一部分).非常类似于" grunt watch "所能做的.我有一个项目,我有JS和PHP,并使用Grunt.在那里我向PHPUnit发出请求,让它在我使用grunt watch的JS测试之上运行.虽然这样做很好,但在仅PHP项目中执行此操作似乎非常麻烦.我需要引入grunt,并在节点上添加依赖项.另外,我有很多这样的PHP项目.因此,更简单的解决方案是有序的.
我有一个小Grunt任务,通过节点弹出并运行"composer install".
var done = this.async();
var exec = require('child_process').exec;
var composer = exec(
'php bin/composer.phar install',
function(error, stdout, stderr) {
done(error===null);
}
);
composer.stdout.on(
'data',
grunt.log.write
);
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在将此子进程的stdout输出到grunt.log.除了输出都是我的默认控制台颜色外,所有输出都显示出良好且与预期一致.如果我直接运行"composer install",我会突出显示提高可读性.
由于我是节点的新手,Grunt和一般的炮轰,我不确定系统的哪个部分着色会丢失,甚至不知道如何有效地调试它.
javascript ×3
node.js ×3
php ×3
testing ×3
gruntjs ×2
java ×2
phpunit ×2
asynchronous ×1
constructor ×1
gem ×1
github ×1
inheritance ×1
junit ×1
markdown ×1
mocking ×1
nullable ×1
php-7 ×1
return-type ×1
ruby ×1
stdout ×1
travis-ci ×1
type-hinting ×1
unit-testing ×1