小编Gor*_*don的帖子

存储库模式是否过度

我一直在使用Repository模式(DDD和POEAA).但是我们的一些队员都认为,这是抽象的,没有必要只是一个额外的层.我可以看到他们的论点有一些好处.现代ORM解决方案(NHibernate或EF)几乎拥有您需要的一切.我搜索,发现了一些文章像这样反驳关于这一主题.那么存储库模式是否过度杀伤?

.net design-patterns domain-driven-design repository-pattern poeaa

10
推荐指数
1
解决办法
1065
查看次数

测试多个文件夹

我在我的项目中使用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)

php phpunit unit-testing project-organization test-suite

10
推荐指数
1
解决办法
8501
查看次数

DefaultMemberAttribute - 它做什么?

我已经阅读过有关它的MSDN文章.在内部看来,它是c#设置的方式,它将作为索引器工作(我是对的吗?).现在,我已经看到以下示例:

[DefaultMemberAttribute("Main")]
public class Program {

    public static void Main() {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我不明白这意味着什么.


谢谢大家.但除了索引器之外,我仍然无法获得它的用处.我们什么时候打电话给InvokeMember?

.net c# vb.net attributes

9
推荐指数
2
解决办法
2179
查看次数

PHP:反射API - 很少使用PHP的好添加

Reflection API是操作OOP内容的好东西,看起来大多数开发人员甚至都不知道或从未使用过.

反思API声明:

PHP 5附带了一个完整的反射API,它增加了对类,接口,函数,方法和扩展进行反向工程的能力.此外,反射API提供了检索函数,类和方法的文档注释的方法.

题:

  • 为什么它的大多数方法/属性几乎没有文档?您在文档中看到此消息:

目前没有记录此功能; 只有它的参数列表可用.

哪里可以找到它的文档?

  • 它是未来兼容的,换句话说,我可以在我的MVC框架中使用吗?
  • 为什么不经常使用它,有什么问题呢?

php oop documentation

9
推荐指数
1
解决办法
1296
查看次数

关于命令模式的问题(PHP)

在阅读完之后,我在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)

php oop design-patterns

9
推荐指数
1
解决办法
2906
查看次数

在构建之前在eclipse中运行脚本

简单的说:

在eclipse中,如何在构建时运行shell/batch脚本?我有一个可以手动运行的外部工具,但我想在项目构建时触发它.在脚本中使用构建变量将是一个额外的好处.

为什么我要这个:

我致力于移动的多平台游戏.公司的团队我正在为我们的游戏使用X-Code,Visual Studio和Eclipse(Momentics).我们希望能够拿起一部手机,并在其上面看到覆盖图,其中包含构建它的人,构建它的时间,来自哪个分支和修订版以及正在使用的库版本等信息.我通过在构建上运行一个脚本来完成这个,它将一些信息转储到我的游戏的资源目录中,然后我可以在运行时解析.这很简单,如果有的话,我会提出其他建议; 请记住,它必须适用于我们的开发人员使用的三个IDE.

奖金糖:

在X-Code中,我们可以使用构建变量,这对于eclipse来说也是非常好的.我使用它们来更改为活动的cocos2d-x存储库并获取一个git日志来告诉我们何时最后一次提交到该存储库以及由谁执行.如果在日食中这是不可能的,我可以想出一些东西.

提前致谢!

c++ eclipse windows macos

9
推荐指数
1
解决办法
9099
查看次数

在PHP中"重载"一个私有方法

我知道我不能在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.

php oop overloading

9
推荐指数
1
解决办法
916
查看次数

我在哪里将通用库代码放在Symfony 2中?

快速提问:我应该在哪里将具有类似特征的代码放在本实用新型服务类中,如Benjamin Eberlei在此博客文章中所述(http://www.whitewashing.de/2013/06/27/extending_symfony2__controller_utilities.html) ?

对于过渡期,我把它放在:src/ProjectName/Library中

上下文

我注意到以下内容:

  • 此逻辑不属于特定的捆绑包,实际上它适用于要创建的所有捆绑包.
  • 此逻辑通常属于特定于应用程序的库,而不是作为bundle的一部分,因为bundle中的控制器将扩展或利用此库代码.

我找到了一些主题相似的问题的答案,但不完全是我追求的

基于我在这里单独研究SO的问题,这个问题似乎已经被某种程度上踩死了,但我认为之前提出的问题都围绕着我实际所追求的问题.无论如何,似乎我有以下选择:

  • 将这些类型的扩展放在一个包中 - 不适用于我正在开发的功能类型本质上是扩展框架代码.
  • 为项目创建供应商目录,其中所有的库代码都会去 - 如果这确实是最好的做法,那么它本质上意味着我必须通过作曲家中的私人仓库使库可用,但这意味着我' d必须维护一个单独的代码库.
  • 创建一些存在于src/Company/SomeNamespace中的伪连接器包 - 我甚至不知道这是否完全可行,但如果它符合SF最佳实践,我会调查它进一步.

同样,问题是为了简洁:我在哪里提供在Symfony 2中提供通用的全局功能的类?

我提前谢谢了.

php symfony

9
推荐指数
1
解决办法
1295
查看次数

如何为Tag Cloud设计MySql表?

我在我的网站上有文章,我想添加描述每篇文章的标签,但是我遇到了设计mysql表标签的问题.我有两个想法:

  1. 每篇文章都有字段"标签",标签格式为:"tag1,tag2,tag3"
  2. 使用字段创建名为tags的其他表:tag_name,article_id

因此,当我想要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个"最常用标签"的最佳方法是什么?

mysql database-design tag-cloud

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

echo('exit')之间有什么区别; 死; 并死('退出');?

我看到一些代码执行此操作:

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.

php exit die echo

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