草庐IT

php - 只有一个 Controller 类的 MVC 模式?

我正在学习MVC模式,特别是php,并且阅读了一些很棒的教程。我已经设法建立了一个有效的基本结构。只是为了好玩,我开始试验Controller、模型和View如何交互,并最终得到一个Controller类,它根据请求的页面创建模型/View。所以我只是在主index.php中实例化这个Controller并将url值传递给它。例如,“mysite/blog/recent”将使Controller包含(并实例化)“models/blog/recent.php”文件,该文件包含模型和View文件夹中的相应View。我的问题是,为网站的每个部分设置实际的Controller类,而不是仅仅将模

php - 关于使用类的类的开始 OOP 问题

我正在尝试用一组不错的类(class)替换按程序编写的网站,作为学习练习。到目前为止,我已经创建了一个基本上在数据库主表中包含一行的记录类。我还创建了一个loader类,它可以:loadAllFromUser($username)loadAllFromDate($date)loadAllFromGame($game)这些方法从数据库中获取所有有效行,将每一行打包成一条记录,并将所有记录放入一个数组中。但是,如果我只想处理一个记录怎么办?我尝试了一下,最终得到的代码几乎与我的程序原件完全相同。我也不确定那张唱片会去哪里。我的加载程序类是否具有protected记录属性?我有点困惑。编辑-

php - 获取实例化类的文件名

假设我在抽象类方法中使用get_class($this)获得了类名。如何获得定义此类的文件名?(完整路径)我知道我可以将它作为参数传递给我的子类并创建一个可在父类中访问的属性,但我想知道PHP是否有内置的东西 最佳答案 您需要的是ReflectionObject类及其方法ReflectionClass::getFileName。$reflection_class=newReflectionClass(get_class($this));echo$reflection_class->getFileName();查看功能手册here.

php - 使类的静态成员成为函数(闭包)不起作用

(PHP7)考虑下面的代码,它试图将一个函数分配给一个变量,然后确保它只被调用一次。classa{staticpublic$b;staticpublicfunctioninit(){self::$b();self::$b=function(){};}}a::$b=function(){echo'HereIdoveryheavystuff,butwillhappenonlyinthefirsttimeIcallinit()';};for($i=0;$i在php7中,它会给出一个错误,它期望a::$b是一个字符串(要调用的函数名)。如果我使用纯变量而不是静态成员,它会起作用。我的问题是,这

php - 需要一个好的类的建议以用于表单显示和验证 (PHP)

在此先感谢,我正在寻找一种在php中制作表单的好方法。我不想在html中创建所有项目并希望它看起来不错,易于验证,并且通常易于使用。建议。 最佳答案 快速谷歌出现Phorm-不幸的是,Phorm在英国也是一个ISP广告定位系统。它似乎可以满足您的要求-我想您可以使用CSS轻松地设置结果样式。它也不属于更大的框架,很难集成到现有项目中。 关于php-需要一个好的类的建议以用于表单显示和验证(PHP),我们在StackOverflow上找到一个类似的问题: htt

PHPUnit 覆盖现在不完整,因为类的左大括号没有被覆盖

大家好,我一直在使用PHPUnit对我正在处理的Symfony/Doctrine项目进行单元测试。直到昨天,各种类别的覆盖率从100%下降到98-99%之前,它一直运行良好。更改的原因是因为某些原因不再将这些类的左左大括号视为“覆盖”。这是问题的屏幕截图:我已经尝试了所有方法,但我无法弄清楚是什么原因导致某些类出现此问题,而其他类则显示“完整”覆盖范围很好。这比任何事情都更让人烦恼,因为测试仍然运行得很好,但很高兴知道发生了什么。我使用的是PHP5.3.2、PHPUnitv3.4.15和Xdebugv2.1.0,以防出现差异。 最佳答案

php 查找实例化类的位置

我在一个大型项目中遇到了一些问题,它归结为某个特定类以某种方式被多次实例化,这导致了不需要的复制/开销。有什么方法可以自动找出它是从哪个文件/行号实例化的?我在这里看到这个问题-Findwhereaclasswasinstantiated但我没有因为它被重新声明而收到fatalerror,所以我不认为include/require是问题所在。在构造函数中我已经将它输出到带有时间戳的txt文件,只需要知道有问题的代码在哪里并删除/简化它 最佳答案 debug_backtrace()将给整个shebang发生了什么事。如果您需要的话,g

php - 对象方法创建其类的实例

我想问一下让一个类创建自己的实例是否是一种好习惯,例如我有一个类:classMyClass{private$data="";private$children=array();publicfunctionadd(){$x=newMyClass();//dosomething//$x->some_method('');$this->children[]=$x;}publicfunctionchildren(){return$this->children;}}这样我就可以使用一些Tree功能,但是这样可以吗,还是我必须做一些不同的事情?例如创建父类A,子类B,在类A中使用多维数组存储子类?也

php - 创建一个类的所有常量的数组?

我正在使用一个类,其中定义了将近20个常量,因为我想要数组中的所有这些常量值,我只想知道有什么方法可以创建一个类的所有常量的数组吗?我试过compact但它不适用于常量。classAlpha{constONE='fixone';constTWO='fix_two';constTHREE=3publicfunction__construct(){protected$arr_constant=compact(ONE,TWO,THREE);//givesFATALError//isthereanymethodwhichcollectallconsantandcreateanarray?pro

PHP:如何将动态变量名与类的 setter 一起使用

我有一个带有私有(private)成员“描述”的类,但它提出了一个二传手:classFoo{private$description;publicfunctionsetDescription($description){$this->description=$description;}}我在变量中有成员的名字。我想动态访问该字段。如果该字段只是公开的,我可以这样做:$bar="description";$f=newFoo();$f->$bar="asdf";但是如果我只有一个二传手,我不知道该怎么做。 最佳答案 $func("asdf