草庐IT

PHP/OOP 方法覆盖 DRY 方式

我很好奇是否有针对以下行为的“更好”设计:foo();//shoulddothestuffinFoo::foo()$biz=newBar();$biz->foo();//shoulddothestuffinBar::foo()andFoo::foo()$buz=newBaz();$buz->foo();//shoulddothestuffinBaz::foo(),Bar::foo(),andFoo::foo()//etc...本质上,我有一个基类Foo,它有一个方法Foo::foo(),其中包含一些应该始终运行的通用代码。我还有各种继承自Foo的子类,每个子类都有自己的特定代码,这些代

php - 将 _POST 参数映射到变量的更好方法

我确信有更好的方法可以将所有_POST参数映射到具有相同名称的变量。有人知道如何更好地做到这一点吗?$ownerName=$_POST["ownerName"];$ownerEmail=$_POST["ownerEmail"];$ownerPhone=$_POST["ownerPhone"];$ownerAddress=$_POST["ownerAddress"];$buyerName=$_POST["buyerName"];$buyerEmail=$_POST["buyerEmail"];$buyerPhone=$_POST["buyerPhone"];$buyerAddress=$

php - 如何检查许多 Controller 方法正在处理的对象是否存在 DRY 和 Laravel 风格?

在LaravelController中,我有几个方法都是从获取数据库记录开始,然后在检查是否找到数据后继续渲染View,或者在没有数据的情况下转到404页面.这是一个例子:with('user',$user);}functionget_edit_user($id){$user=static::get_user($user_id);if(!$user){returnResponse::error('404',static::$some_common_error404_message);}returnView::make('users.display_edit_user_form')->w

javascript - 验证计算时 DRY 在服务器 (PHP) 上进行客户端 (Javascript)

当我在服务器(PHP)上验证客户端(javascript)所做的计算时,我正在寻找DRY。我在服务器上进行验证以防止恶意用户复制javascript,但我在客户端进行计算以避免AJAX返回服务器进行验证时的延迟和服务器压力。我的问题:有什么方法可以做到这一点,还是我必须用两种语言编写代码?如果必须写出来,是为了DRY目的AJAX返回服务器更好,还是应该用两种语言写出相同的验证代码?Thisquestion这正是我正在寻找的答案,但从未得到令人满意的答案。编辑(1/25/15):尽管接受的答案成立,特别是因为我最初的问题指定服务器在PHP上运行,但我认为值得指出的是服务器端验证可以使用N

php - Codeigniter - View 不违反 DRY 的最佳实践

尝试确定在codeigniter中处理View的最佳方式。现在,我认为任何东西都太乱了。目前我有3个相关观点:1)标题2)内容3)页脚每个Controller都有这样的东西。有些Controller甚至多次出现这种情况(同一Controller中的不同功能):$this->load->view('head',$data);$this->load->view('volunteers/add_profile.php',$content_data);$this->load->view('foot');必须在每个页面上加载页眉和页脚似乎很愚蠢。但是,每个页面的页眉中的数据(元标记、样式表、加载

php - require() 是不好的做法吗?如何不重用代码

大量使用require()是不好的做法吗?大多数网站都有页眉和页脚,无论您在页面上的哪个位置导航,它们看起来都一样。但主要内容因页面而异。而且由于我不想重用代码,在两个地方使用相同的代码,我认为require()非常好。但是可以像我一样使用它吗?这是我的例子:侧边栏框是一个包含“最新消息”等内容的框。并且由于我可能希望在许多页面上都有“最新消息”框,所以我需要require()它以避免具有相同的代码在两个地方。我应该用其他方式解决吗?感谢您的帮助! 最佳答案 这看起来完全没问题,这正是require()的目的。使用require()

php - 多个路由的相同 Laravel 资源 Controller

我正在尝试使用trait作为我的Laravel资源Controller的类型提示。Controller方法:publicfunctionstore(CreateCommentRequest$request,Commentable$commentable)其中Commentable是我的Eloquent模型使用的特征类型提示。Commentable特性看起来像这样:namespaceApp\Models\Morphs;useApp\Comment;traitCommentable{/***Getthemodel'scomments.**@return\Illuminate\Databas

php - 扩展或实现 simplexml 以避免 DRY

请检查我为构建一些XML框架而创建的以下类..classCommandBuilder{publicfunction__construct(){//}publicfunctionlogin($username,$password){$frame=$this->frame();$command=$frame->addChild('command');$login=$command->addChild('login');$login->addChild('username',$username);$login->addChild('password',$password);$command-

php - 帮助使用 DRY 原则在服务类中创建灵活的基础 'find' 方法

多年来,我一直在一遍又一遍地(随着进化)重新实现相同的代码,却没有找到一些干净、有效地将其抽象出来的方法。该模式是我的服务层中的基本“find[Type]s”方法,它将选择查询创建抽象到服务中的单个点,但支持快速创建更易于使用的代理方法的能力(参见示例PostServivce::getPostById()方法方法如下)。不幸的是,到目前为止,我一直无法满足这些目标:减少由不同的重新实现引入的错误的可能性向IDE公开有效/无效的参数选项以进行自动完成遵循DRY原则我最近的实现通常类似于以下示例。该方法接受一组条件和一组选项,并从中创建并执行一个Doctrine_Query(我今天主要在这

php - DRY - 将一定数量的元素添加到数组末尾,直到它的计数达到特定的 int

由于我使用的是一个相当陈旧的库,我需要将数组分成五个block。因此,如果我的数组有9个元素,我需要将其分块(5和4),然后我需要向最后一个数组添加一个空白元素以使其达到5。我写了一些非常糟糕的有效代码,但我知道这违反了DRY原则,因为它计算数量,并使用多个if语句来推送正确数量的空白元素回到5。谁能告诉我应该如何分解这段代码,以便$chunkFive被array_pushed直到它有5个元素?$blank=array("","","blank-image.png","","");//createtheblankimagearrayif(count($chunkFive)