草庐IT

BUAA_OO_U2_Summary

全部标签

php - 一种非OO的PHP设计模式,最适合这种情况的PHP模式

我们得到了一个php库存程序。然后我们应该说设计模式是否会使程序更好,或者它是否只会使程序更复杂。程序结构如下。该程序被分解为嵌入了html的php脚本。要么(A)一个完整的php页面专门用于一个选项,要么(B)一个选项的逻辑在另一个脚本页面内,该页面用于类似操作的其他选项。(这不包括简单的按钮,例如“重置”和“返回主页”。)(A)例如,一旦您打开网站,就会出现一个带有选项的导航菜单。当您单击一个选项时,例如在客户下,有一个“查看”链接。单击后,您将被带到另一个页面,其中包含与更多选项相对应的其他链接,例如“编辑”和“删除”。通常,对于这个网站,每个选项都对应于它自己的php脚本页面。

php - 如何在完整的 OO 应用程序中处理依赖注入(inject)

我在类设计上遇到了难题。我尽力遵守SOLID原则,但我不知道如何处理依赖注入(inject)。这是我的困境:我读到在类中实例化对象以避免引入依赖性是一种不好的做法。那么在一个完整的对象应用程序中,我们的依赖应该在哪里创建呢?在一个只负责依赖实例化的特殊对象中?如果是,这个对象的名称是什么以及如何定义它?就是我们所说的“控制者”吗?这个“Controller”,对它进行单元测试的正确方法是什么?我们应该对其进行单元测试吗?在完整的POO应用程序中,如何避免在类之间传递我们的对象(通常是相同的)?例如,一个DB对象,Log,...这样,我们冒着拥有带有许多参数的构造函数的风险,不是吗?为了

php - OO PHP 基本获取和设置方法 "Undefined variable"

我一直在阅读OOPHP编程和封装,但我仍然觉得它有点令人困惑。我有这个代码:classItem{private$id;private$description;publicfunction__construct($id){$this->id=$id;}publicfunctiongetDescription(){return$this->$description;}publicfunctionsetDescription($description){$this->description=$description;}}在我的testclass.php文件中,当我像这样使用set和get描述

php - 关于 PHP 中的 OO 和类的几个问题

我正在学习OO和类,我有几个关于PHP中的OO和类的问题据我了解,扩展另一个类的类仅意味着扩展另一个类的类可以访问它所扩展的类的变量/属性和函数/方法。这是正确的吗?我知道静态方法或属性基本上与类外的过程函数或变量相同,几乎可以在任何地方使用。这是正确的吗?Public表示任何类都可以访问它,Private表示只有封装在其中的类或从其所有者扩展的类才能访问和使用。这是正确的吗? 最佳答案 1)是的,没错。子类继承其父类的任何protected或public属性和方法。任何声明为private的东西都不能使用。2)这是真的。只要加载了

php - 用PHP学习OO编码,static != 表达式,但是PHP手册上说凡是有值的都是表达式,一头雾水

几天前我开始学习面向对象,我对过程编码还算可以,但显然这还不够,我想成为一个有很多经验和知识的精通编码器,所以首先要完全学习必须是OO,然后是我认为正确的设计模式。无论如何,有一件事我卡住了,我不太明白......静态变量...我知道静态变量不会丢失它的值,即使包含的函数已完成执行,并且如果再次执行相同的函数将保持它的值,等等。但我不明白的是,您现在究竟可以将什么分配给静态变量?关于stackoverflow状态的手册和无数问题您不能将表达式分配给静态变量。所以我阅读了PHP手册,以找出究竟什么才算是表达式?手册答案是(我引用):“在PHP中,您编写的几乎所有内容都是表达式。定义表达式

php - 在 OO PHP 中加载实例的有用性?

我被要求用PHP做一个项目并确保它是面向对象的。我做过OO,也做过PHP,但从来没有两者都做过。OOPHP(继承/多态性之外)的主要好处似乎是代码组织。没关系;我正在这样做。但是我遇到困难的地方是我是否真的应该为每个“对象”创建实例。对我来说(也许我在这里太天真了),网络应用程序就是发出非常短的、无状态的请求来更改或检索数据库中的记录。对象不能在请求之间持续存在。因此,从数据库加载数据、从该数据构造对象、进行小更新、将对象中的数据保存回数据库,然后丢弃对象感觉毫无意义。加载/保存代码似乎白做了很多工作。[澄清:浪费开发时间,而不是处理时间……不太关心开销]另一种方法是拥有一堆单例(或具

php - 是否有任何 PHP OO 文件 API?

我知道PHP包含许多用于处理文件和目录的内置函数。我可以读取、写入、删除,并且可以通过使用PHPfilesystemfunctions获取关于文件的几乎所有可能信息。这些函数的问题是它们都是过程性的。是否有任何PHPOO文件API?我怀疑是否有原生的,至少在 最佳答案 是的,yesthereis,它很漂亮。SplFileInfo和SplFileObject(这可能是您真正想要的)在5.1.2中都可用。虽然它们大多只是过程功能的包装器,但我发现它们总体上要好得多——如果仅仅是因为它们允许我在使用类型提示时传递东西,而且因为我不需要担心

php - OO PHP 保护的属性在 foreach 循环中不可用?

我有一个验证类,我想用它来检查我的应用程序中的所有值是否在允许的约束范围内。我正在将一个对象从另一个类(在本例中为用户)传递给验证类中的静态函数functionvalidate(){$errors=Validation::validate($this);}在验证类中,我创建了一个新对象,然后处理传递的参数对象的属性(或者至少这是我想做的)。functionvalidate($object){$validation=newValidation();print_r($object);print_r('');foreach($objectas$key=>$val){print_r($val)

php - 在 OO 上下文中建模更改

FormalsemanticsofanObject-orientedprogramminglanguageincludeencapsulatedstate.Isthereause-caseforencapsulatingapotentialchange,previoustothestatechange?AlthoughthefollowingexamplesareinPHP,pleasealsothinklanguage-agnosticinyouranswer.背景我有一个Client负责发送请求并从服务器检索响应的对象,它用于通过调用API来更改驻留在另一台服务器上的对象的状态。有

PHP OO - 我如何在 X 和许多 Y 之间建立类关系

所以我有2个类:我们称它们为Person和Car在实例化之前,我需要从我的Car类中的person对象访问一些属性。我是否只是按照以下顺序说一些事情:$car=newCar($person);如果是,那么我如何访问我的Car类中的那些对象属性?会不会是这样的:classCar{function__construct($person){$this->person=$person;}}如果不是,有什么方法可以实现? 最佳答案 我们在这里有些困惑。现实世界的OOP,考虑和比较:汽车给或由人购买:$person->addCar($car);