我一直在使用Repository模式(DDD和POEAA).但是我们的一些队员都认为,这是抽象的,没有必要只是一个额外的层.我可以看到他们的论点有一些好处.现代ORM解决方案(NHibernate或EF)几乎拥有您需要的一切.我搜索,发现了一些文章像这样和反驳关于这一主题.那么存储库模式是否过度杀伤?
.net design-patterns domain-driven-design repository-pattern poeaa
我在我的项目中使用PHPUnit 3.5.12,netbean 6.9和git子模块.
所以我的文件夹架构看起来像这样:
lib/
lib/submodule1
lib/submodule1/src
lib/submodule1/tests
lib/submodule2
lib/submodule2/src
lib/submodule2/tests
src/
tests/
Run Code Online (Sandbox Code Playgroud)
考虑到我的主要测试文件夹(使用phpunit_netbean.xml和bootstrap.php)位于/ tests /文件夹中; 我怎样才能在/ lib/*/tests /中运行测试?
我看看测试套件,但我无法让它工作.到目前为止,我在tests/phpunit_netbean.xml文件中尝试了以下配置:
<?xml version="1.0"?>
<phpunit
bootstrap="./bootstrap.php"
strict="true"
stopOnError="false"
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
colors="false"
verbose="true"
>
<testsuites>
<testsuite name="modules">
<directory>../lib/*</directory>
</testsuite>
</testsuites>
</phpunit>
Run Code Online (Sandbox Code Playgroud)
当我在Netbean中点击ALT + F6时,我只有来自/ test的测试.同样的事情:
/tests$ phpunit -c phpunit_netbean.xml --testdox ./
enter code here
Run Code Online (Sandbox Code Playgroud)
另外,我试过这个:
/tests$ phpunit -c phpunit_netbean.xml --testdox --loader modules ./
PHPUnit 3.5.12 by Sebastian Bergmann.
Could not use "modules" as loader.
Run Code Online (Sandbox Code Playgroud) 我已经阅读过有关它的MSDN文章.在内部看来,它是c#设置的方式,它将作为索引器工作(我是对的吗?).现在,我已经看到以下示例:
[DefaultMemberAttribute("Main")]
public class Program {
public static void Main() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我不明白这意味着什么.
谢谢大家.但除了索引器之外,我仍然无法获得它的用处.我们什么时候打电话给InvokeMember?
Reflection API是操作OOP内容的好东西,看起来大多数开发人员甚至都不知道或从未使用过.
反思API声明:
PHP 5附带了一个完整的反射API,它增加了对类,接口,函数,方法和扩展进行反向工程的能力.此外,反射API提供了检索函数,类和方法的文档注释的方法.
题:
目前没有记录此功能; 只有它的参数列表可用.
哪里可以找到它的文档?
在阅读完之后,我在PHP中编写了一个简约的Command Pattern示例.我有几个问题 ...
我想知道我做的是对的吗?或者可能太小,从而减少了命令模式的要点
interface ICommand {
function execute($params);
}
class LoginCommand implements ICommand {
function execute($params) {
echo "Logging in : $params[user] / $params[pass] <br />";
$user = array($params["user"], $params["pass"]);
// faked users data
$users = array(
array("user1", "pass1"),
array("user2", "pass2")
);
if (in_array($user, $users)) {
return true;
} else {
return false;
}
}
}
$loginCommand = new LoginCommand();
// $tries simulate multiple user postbacks with various inputs
$tries = array(
array("user" => "user1", "pass" => "pass1"),
array("user" …
Run Code Online (Sandbox Code Playgroud) 简单的说:
在eclipse中,如何在构建时运行shell/batch脚本?我有一个可以手动运行的外部工具,但我想在项目构建时触发它.在脚本中使用构建变量将是一个额外的好处.
为什么我要这个:
我致力于移动的多平台游戏.公司的团队我正在为我们的游戏使用X-Code,Visual Studio和Eclipse(Momentics).我们希望能够拿起一部手机,并在其上面看到覆盖图,其中包含构建它的人,构建它的时间,来自哪个分支和修订版以及正在使用的库版本等信息.我通过在构建上运行一个脚本来完成这个,它将一些信息转储到我的游戏的资源目录中,然后我可以在运行时解析.这很简单,如果有的话,我会提出其他建议; 请记住,它必须适用于我们的开发人员使用的三个IDE.
奖金糖:
在X-Code中,我们可以使用构建变量,这对于eclipse来说也是非常好的.我使用它们来更改为活动的cocos2d-x存储库并获取一个git日志来告诉我们何时最后一次提交到该存储库以及由谁执行.如果在日食中这是不可能的,我可以想出一些东西.
提前致谢!
我知道我不能在PHP中重载方法.而且,据我所知,private
类中的方法对于扩展基类的类是不可见的.那为什么这不起作用?
class Base {
private function foo($arg) {
print "Base $arg";
}
}
class Child extends Base {
public function foo() {
print "Child";
}
}
$c = new Child;
print $c->foo();
Run Code Online (Sandbox Code Playgroud)
错误:
PHP Strict Standards: Declaration of Child::foo() should be compatible with Base::foo($arg) in /var/www/boludo.php on line 17
我认为该foo($arg)
方法在Child
课堂上是不可见的,因为是private
.所以,我没有超载foo
,我只是创建一个名为的方法foo
.
快速提问:我应该在哪里将具有类似特征的代码放在本实用新型服务类中,如Benjamin Eberlei在此博客文章中所述(http://www.whitewashing.de/2013/06/27/extending_symfony2__controller_utilities.html) ?
对于过渡期,我把它放在:src/ProjectName/Library中
上下文
我注意到以下内容:
我找到了一些主题相似的问题的答案,但不完全是我追求的
基于我在这里单独研究SO的问题,这个问题似乎已经被某种程度上踩死了,但我认为之前提出的问题都围绕着我实际所追求的问题.无论如何,似乎我有以下选择:
同样,问题是为了简洁:我在哪里提供在Symfony 2中提供通用的全局功能的类?
我提前谢谢了.
我在我的网站上有文章,我想添加描述每篇文章的标签,但是我遇到了设计mysql表标签的问题.我有两个想法:
因此,当我想要ID为1的文章的标签时,我会跑
SELECT ... FROM tags WHERE `article_id`=1;
Run Code Online (Sandbox Code Playgroud)
但是,我也想通过比较标签来了解3篇最相似的文章,所以如果我的文章有标签"php,mysql,erlang",还有5篇带有标签的文章:"php,mysql","erlang,ruby", "php erlang","mysql,erlang,javascript",我会选择1.,3.和4.,因为这3个标签与主文章大致相同.
还有一个问题,获得10个"最常用标签"的最佳方法是什么?
我看到一些代码执行此操作:
if(something){
echo 'exit from program';
die;
}
...more code
Run Code Online (Sandbox Code Playgroud)
和其他人一样die
:
if(something) die('exit from program');
...more code
Run Code Online (Sandbox Code Playgroud)
它何时结束程序有什么固有的区别,我应该知道它之后的代码吗?诸如此类
UPDATE
我主要是问,如果它是一种编码风格,或者是否有一个真正的原因,为什么有些编码方式与另一种方式编码.我不是在问exit
和之间有什么区别die
.