草庐IT

抽象代数

全部标签

php - 抽象 PHP 类中的返回类型 "self"

PHP7.1我目前正在尝试创建一个抽象类来提供、定义和部分实现其子类的功能。这里我使用了以下结构:abstractclassParent{publicstaticfunctionfromDB(string$name=''){$instance=newstatic();if(!empty($name)){$instance->setName($name)->read();}return$instance;}publicabstractfunctionread();publicabstractfunctionsetName(string$name):self;}这里PHP似乎理解setNa

php - 在 PHP 中使用带有抽象类型的 WSDL

我正在研究Web应用程序与MicrosoftExchange2007之间的集成。我正在使用ExchangeWeb服务(EWS)与ExchangeServer进行通信。但是,我遇到了WSDL的一些问题。WSDL中定义了几种具有抽象类型元素的类型。例如:SearchExpression是一种抽象类型。有几种扩展SearchExpression的类型,例如ExistsType:...我希望能够进行生成以下XML的有效调用:...但是,当我尝试使用PHP的SoapClient类进行调用时,我收到以下错误:Therequestfailedschemavalidation:Theelement'h

php - 抽象类在 PHP 中扩展抽象类?

我正在研究一个简单的抽象数据库类。在我对这个类的使用中,我希望有一些实例是一个单例。我在想有一个不是单例的抽象类,然后将它扩展到另一个是单例的抽象类。这可能吗?推荐?编辑:我想要两个几乎相同的抽象,除了一个是单例。所以唯一的区别将是一个将具有另一个的所有功能,但将具有使其表现得像单例的其他属性和方法。我希望为此创建一个基类代码库,这样当我进行更改时,我就不必使两个文件保持同步。 最佳答案 在我做事的方式中,我认为抽象单例没有用处。这是因为,1)您想要成为单例的是您实例化以在应用程序中使用的最终类,无论它是库、模型、Controlle

php - Codeigniter 抽象基础模型

是否可以在Codeigniter中实现抽象基础模型?我创建了一个具有基本CRUD功能的抽象类,但我收到“无法实例化抽象类”错误。抽象模型位于/application/core/my_model.php中,很简单abstractclassMY_ModelextendsCI_Model{“无法实例化抽象类”在/system/core/Common.php的第174行看起来Codeigniter在加载时试图实例化my_model.php,我猜这是因为/core文件夹中的文件被用作扩展核心系统文件(例如Controller和Model)的地方。有什么办法可以阻止这种情况吗?我试图使用PhilS

php - 抽象类-子类型

我正在尝试设计一些类层次结构,但我在这部分“卡住了”。假设我有以下类(class)abstractclassVideo{constTYPE_MOVIE=1;constTYPE_SHOW=2;abstractpublicfunctiongetTitle();abstractpublicfunctiongetType();}classMovieextendsVideo{//...publicfunctiongetType(){returnself::TYPE_MOVIE;}}classShowextendsVideo{//...publicfunctiongetType(){returns

PHP:抽象类的用例是什么

根据php.net文档:Wheninheritingfromanabstractclass,allmethodsmarkedabstractintheparent'sclassdeclarationmustbedefinedbythechild;additionally,thesemethodsmustbedefinedwiththesame(oralessrestricted)visibility.Forexample,iftheabstractmethodisdefinedasprotected,thefunctionimplementationmustbedefinedaseit

php - 这是对抽象工厂模式的合法使用吗?

这是我试图在我的程序中实现的内容:程序应该打开一个zip文件,其中包含许多数据文件数据文件的格式可能因zip文件而异(例如,csv、制表符分隔,甚至可能是某种需要解码的二进制文件)但是,在一个zip文件中,所有数据文件都是同一类型我一直在阅读Gamma等人的“设计模式”,并且一直在研究抽象工厂模式来尝试解决这个问题。理想情况下,我希望Zip文件有一个类,它可以读取其中的任何类型的数据文件。我想我会有两个类——FileTypeA和FileTypeB,它们可以处理不同格式的数据(尽管将来可能会有更多)。我想要一种方法来告诉我的ZipFile类在读取数据时使用哪种类型的文件。到目前为止,这是

php - 试图抽象数据库类并停止其公共(public)使用 : Laravel 5. 2.31

我有以下类(class)界面interfaceIRole{publicfunctionAll();}在下面的类(class)中,我还将在将数据发送到数据库层之前编写一些逻辑,并在从数据库类检索数据之后编写一些代码classRoleBLimplementsIRole{publicfunctionAll(){return(newRoleDb())->All();}}数据库类classRoleDb{publicfunctionAll(){$Roles=\App\Models\Role\RoleModel::all();return$Roles;}}下面是我的Controller操作方法cla

php - 如何实例化抽象类的子单例?

我有一个抽象类和一个扩展抽象类的子类。这个child应该是一个单例。这是抽象类的简化示例:abstractclassAbstractClass{protectedstatic$instance=NULL;abstractprotectedfunctionmeInit();privatefunction__construct(){$this->meInit();$this->init();}privatefunction__clone(){}staticfunctiongetInstance(){if(is_null(self::$instance)){self::$instance=n

php - 扩展 Laravel 的抽象 TestCase 类时出错(错误是说我的扩展类必须是抽象的)

我希望有人能帮助我。我正在使用laravel4并且我正在编写我的第一个单元测试一段时间但遇到了麻烦。我正在尝试扩展TestCase类,但出现以下错误:PHPFatalerror:ClassregistrationTestcontains1abstractmethodandmustthereforebedeclaredabstractorimplementtheremainingmethods(Illuminate\Foundation\Testing\TestCase::createApplication)in/home/john/www/projects/MyPainChart.co