草庐IT

php - 单例 vs 工厂?

我有3个日志类,它们都实现了iLog接口(interface):DatabaseLogFileLogScreenLog它们只能有一个实例。最初我虽然为每个类使用单一模式,但后来我想为什么不使用工厂来实例化,因为这样我就不必为每个类和所有future的日志类创建单一模式。也许将来有人会希望将它们作为多个对象。所以我的问题是:我应该在这里使用工厂模式还是单例模式? 最佳答案 创建Logger实例的责任应该在哪里?每个要记录的类(class)?使用某种了解整体上下文的监督组件?我认为更有可能是后者,因此工厂是有意义的。工厂可以拥有决定需要

php - filter_input(INPUT_GET, ‘my_string’, FILTER_SANITIZE_STRING); VS 正则表达式预匹配 PHP

出于经验哪个更好用filter_input(INPUT_GET,‘my_string’,FILTER_SANITIZE_STRING);或者用于清理用户输入数据的正则表达式preg_match? 最佳答案 我更喜欢filter_input而不是正则表达式-因为它更容易阅读。 关于php-filter_input(INPUT_GET,‘my_string’,FILTER_SANITIZE_STRING);VS正则表达式预匹配PHP,我们在StackOverflow上找到一个类似的问题:

php curl vs cli curl,发布 xml

由于回答而更新:谁能指出以下两者的区别:$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$api_root);curl_setopt($ch,CURLOPT_POST,true);curl_setopt($ch,CURLOPT_POSTFIELDS,"xml");//triedhttp_build_queryalsocurl_setopt($ch,CURLOPT_RETURNTRANSFER,true);//Addedthis,stillnogoodreturncurl_exec($ch);//returnsfalse和:$curl="curl-

php - OOP 依赖项 : Dependency Injection vs. 注册表

我了解一些OOP并阅读过这个和那个,但我不是一个铁杆OOP人并且没有接受过正式培训并且不能喋喋不休地说出为什么某些东西应该使用或不使用依赖注入(inject),并且可能无法识别所有依赖项在设计中,因此我的问题。在这里回答关于SO(Usingaobjectinmethodsofotherobjects)的问题我开始怀疑自己。就依赖性而言,其中之一是更好还是更差或两者都可以接受?有什么设计限制吗?我已经阅读并理解了两者,但从未进行过比较。为什么一个会更好地用于设计等。依赖注入(inject):classmyClass{private$db;publicfunction__construct

PHP 方法 : getMyVariable() vs myVariable()

我想知道用PHP编码时什么更好或更容易被接受。我被教导,在Java中,获取和设置变量的类方法应该以“get”和“set”为前缀。不过,我想知道的是,我是否应该在常规PHP函数上使用这些前缀。例如,要从session变量中检索用户名,我要么拥有getUsername()或者用户名()有哪些优势和最佳实践。我知道使用“get”更容易内存,但它是多余的(尤其是对于我不希望其他人阅读的个人项目),但为了良好的实践,我想把它做对。当我在做这件事时,变量的正确命名约定是什么?下划线分隔还是驼峰式?我环顾四周,发现两者兼而有之。Wordpress倾向于在它们的函数名称中使用下划线,但许多其他网站表示

php: output[] w/join vs $output .=

我正在修改原作者使用数组构建网页的一些代码:$output[]=$stuff_from_database;$output[]='morestuff';//etcechojoin('',$output);谁能想出为什么这比(或反之亦然)更可取:$output=$stuff_from_database;$output.='morestuff';//etcecho$output; 最佳答案 它可能是由来自字符串不可变且因此连接成本高昂的语言的人编写的。正如以下测试所示,PHP不是其中之一。所以第二种方法是性能明智的,更好。我能想到的使用第

php echo vs 打开&关闭标签

澄清一下:“echovsprint”和“双引号vs单引号”的问题完全可以理解,这是关于另一的事情:有什么理由让人更喜欢:echo'';foreach($lotsofrowsas$row){echo'',$row['id'],'';}echo'';结束:执行/解析速度会更快吗?更优雅?(等等)我倾向于使用第二个选项,但我担心我可能会忽略一些明显/必要的东西。 最佳答案 第一个的好处更易于阅读???第二个的好处所见即所得可能某些IDE可以实现HTML代码完成/标记匹配没有逃避的头痛更容易处理较大的HTMLblock如果我在给定的PHP例

php - 学说 : Symfony2 Listener vs inclass Lifecycle callbacks

我一直在处理一个图像实体,当持久化时,它使用内部方法来保存/移动/删除使用钩子(Hook)注释关联的图像文件,但我觉得有点像实体本身应该只是相关的getter和setter。我应该将方法保留在实体中还是将它们移至监听器类?实体有方法:生成唯一的文件名/路径将图像文件持久保存到磁盘在级联移除时移除图像。但我不确定我是否喜欢这个存在于我的实体中../***@ORM\PostPersist()*@ORM\PostUpdate()*/publicfunctionupload(){if(null===$this->getFile()){return;}//throwsexceptiononerr

PHP pdo : prepare() vs transactions

prepare()和transactions是否相互排斥?我有很多构建然后执行的查询,所以听起来我想要的是使用事务;但我在prepare.statment上读到使用bindParam方法消除SQL注入(inject)的页面。有什么方法可以做到这两者吗?这是我现在拥有的代码示例(可能正确也可能不正确):$dbhost=FOO;$dbuser=FOOBAR;$dbpass=RABOOF;$options=array(STUFF);$dbh=newPDO("mysql:host=$dbhost",$dbuser,$dbpass,$options);//Iknowthis^works$dbh-

php - Memcache php cli vs apache 使用不同的缓存?

试图从头到尾找到这个答案,但碰壁了。代码:(保存为recent.php)$MEMCACHE_SERVERS=array("1.2.3.4",//dbprodmaster"5.6.7.8",//dbprodslave1"9.10.11.12"//db1dev);$memcache=newMemcache();foreach($MEMCACHE_SERVERSas$server){$memcache->addServer($server,11211);}$key="rec_obj_".$cat_id;$memcache->delete($key);$memcache->set($key,$