【在PHP中实现重载构造函数的方法_PHP教程】教程文章相关的互联网学习教程文章

php – 疙瘩和动态构造函数注入【代码】

我有一个关于疙瘩和动态构造函数注入的问题. 说我有一个MVC框架,我想做一些像图像上传.半DI的方式是这样的:class ImageUploadController {public function upload(){$targetImage = new Image(1920, 1080, 75, 'jpg', 'save/path');$imageSaver = new JPEGImageSaver($targetImage);$imageUploader = new ImageUploader($imageSaver);$imageUploader->upload('myUploadfield');} }基本上Image是我想要创建和保存的图像属性的简单容...

php – 从XML外部化对象创建或从构造函数中创建它更好吗?

我有一些我从XML配置创建的PHP类.我想知道的是: 我是否最好(从面向对象的角度)使用工厂方法从XML创建这些类或将XML传递给构造函数来创建类? 工厂方法的优点是可以将构造与使用分开,更容易实现替代实现,但是您需要公开setter或将一大堆对象传递给构成它的状态的构造函数. 另外一个细微之处在于传入XML允许您自上而下创建对象,而一些较低的对象需要引用它们上面的那些对象.第二种方法会产生更多自下而上的东西. 或者是否有更多的设...

php – Laravel在类构造函数中检索param【代码】

参见英文答案 > Passing parameter to controller from route in laravel 4个这是我的路线:Route::controller('/app/{companyId}/', 'HomeController', array('before' => 'auth'));如何在__constructor中检索$companyId参数以避免在我的所有操作中单独检索它?解决方法:如果要获取控制器的__construct中的参数,可以执行以下操作:class HomeController extends \BaseController {public func...

php – Zend Framework快速入门模型构造函数【代码】

使用ZF快速入门create model,作为本主题的基础.我想准确理解__construct和setOptions()方法应该在这个上下文中做什么.无论我敲了多少次,我都不知道这两种方法在做什么.public function __construct(array $options = null){//if it is an array of options the call setOptions and apply those options//so what? What Optionsif (is_array($options)) {$this->setOptions($options);}}public function setOptions(array $options...

php – 调用父构造函数时,CodeIgniter Controller会中断【代码】

我在helloworld.php中有以下代码:<?phpclass Helloworld extends CI_Controller {public function __construct() {parent::__construct(); }public function index() {$this->load->model("helloworld_model");$data["result"] = $this->Helloworld_model->getData();$data["page_title"] = "CI Helloworld appis";$this->load->view("helloworld_view", $data); }}?>代码在调用父构造函数后停止执行,而不会给出任何错误消息. /va...

php – Behat 3 – 将参数(从导入的文件)传递给FeatureContext构造函数【代码】

我是Behat和YAML的新手,我在将大型参数数组传递给FeatureContext构造函数时遇到了麻烦. 使用Behat 2,以下工作正常: behat.yml(为方便起见缩短):default:context:extensions:Behat\MinkExtension\Extension:base_url: 'http://mysite.local'goutte: ~selenium2: ~... imports:- config/data/mydata.yml和mydata.yml:default:context:parameters:some_long_array:'key1': 'value1''key2': 'value2'...我可以有很多这样导入的参数文...

如何让PHP类在其构造函数中实例化另一个类?【代码】

我在这里和PHP都很新. 我想知道在他的参数中在另一个类构造函数中实例化一个类的正确方法是什么. (我在底部有一些狗屎测试)class CryptoControl {public $helper;public $keyValues;public function __construct ($primo1, $primo2, $message) {$this->helper = new MathHelper();$this->keyValues = new KeyValues($primo1, $primo2, $message);}public function criptografa_descriptografa_simetrica() {$message = $keyValues-...

php – 避免构造函数服务Symfony中的长参数列表【代码】

我一直在使用Symfony开发我的Web应用程序,但我一直遇到一个问题.因为我希望能够正确地对我的服务进行单元测试,所以我总是在服务的构造函数中出现过多的混乱. 理论用例 假设我需要一个允许我处理XML文件并将其内容保存到数据库中的服务.<?xml version="1.0" encoding="UTF-8" ?> <users><user><id>1234</id><username>Example User</username><email>user@example.com</email><usergroup><id>567</id><name>Example User Group</nam...

PHP:在类或构造函数外定义常量?【代码】

我是班级和oo的新手.我一直在寻找一个基本的MySQL类,我找到了Matthew Saragusa的“简单的MySQL类”. 这些是第一行:define('SIMPLE_DB_SERVER', 'mysqlserver.net'); define('SIMPLE_DB_NAME', 'mydbname'); define('SIMPLE_DB_USERNAME', 'myusername'); define('SIMPLE_DB_PASSWORD', 'mypassword'); class ASimpleMySQLDB {public function __construct($server, $database, $username, $password){$this->conn = mysql_connect...

是否有可能在PHP中链式重载构造函数?【代码】

这是一个组成的例子,当有很多参数时它会变得更有用. 这将使调用者使用新的Person(“Jim”,1950,10,2)或new Person(“Jim”,datetimeobj).我知道可选参数,这不是我在这里寻找的. 在C#我可以这样做:public Person(string name, int birthyear, int birthmonth, int birthday):this(name, new DateTime(birthyear, birthmonth, birthday)){ }public Person(string name, DateTime birthdate) {this.name = name;this.birthdate = bir...

如何使用Phpunit代理原始方法并同时禁用构造函数?【代码】

使用Phpunit 4.5.2,我试图模拟以下类:class Foo {public function bar() {} }class MyClass {private $foo;public function __construct(Foo $foo) {$this->foo = $foo;//some other stuff that I want to suppress during the unit tests.}public function doSomething() {$this->foo->bar();} }我希望实现以下目标: >让模拟调用原始方法.>避免使用构造函数(我使用反射设置foo属性). 这段代码:$mock = $this->getMockBuilder('...

php – 在Laravel中,使用App :: make(”)而不是构造函数注入的任何缺点?

通常我会通过构造函数注入依赖项,但是当父类具有依赖项并且必须将它们传递给所有子项时,它会变得非常冗长. 另一种方法是单独在父类中使用$this-> dependancy = App :: make(‘Dependancy’).然后父和子构造函数都可以为空.这样做是否有任何不利之处?解决方法:您的方法有一个缺点,做您的建议会使您的应用程序不易测试. 我的意思是,如果您尝试为父类编写单元测试,您将不再孤立地测试该父类.您的测试现在还取决于父类中声明的依赖项的...

PhpStorm:获取代码检查警告“与其类同名的方法将不是构造函数”【代码】

好的,我终于切换到了PHP7.我的代码有点陈旧,将进行翻新.一些问题是:class MagicClassfunction MagicClass(){//etc}这在执行期间给出了弃用警告:Deprecated: Methods with the same name as their class will not beconstructors in a future version of PHP; MagicClass has a deprecatedconstructor in这很好:class MagicClassfunction __construct(){//etc}如何在我当前的代码库中获取PhpStorm代码检查以警告我这些错误?解决...

从自己的方法调用PHP构造函数【代码】

我一直在寻找一种方法来调用类的构造函数,类似于“parent :: _ construct”,但对于类本身(类似“self :: _ construct”,虽然这不起作用).为什么这样?考虑以下(不起作用,顺便说一下)……class A {var $name;function __construct($name) {$this->name = $name;}function getClone($name) {$newObj = self::__construct($name);return $newObj;} }class B extends A { }在实际实现中,还有其他属性可以区分B类和A类,但两者都应该具有...

旧式和新式PHP构造函数之间的区别【代码】

有人能告诉我“旧式”对象构造函数与“新式”构造函数有何不同?我正在学习PHP OOP,我想知道我何时阅读旧语法和新语法,并且更好地了解OOP随着时间的推移如何在PHP中发生变化. 新风格class aObject {public $name;public function __construct($name){$this->name = $name;} }解决方法:“旧”构造函数语法指的是PHP4. PHP4的最后一个版本是在2008年,PHP5的第一个版本是在2004年.这是一个旧式类和一个新式类的例子. 老(PHP4)<?phpcla...

构造函数 - 相关标签
重载 - 相关标签