Интерфейс или абстракт

dakata__92

Super Moderator
Така. Колеги драснах си един клас за конфигурационен файл и реших да се пробвам да му направя някакъв интерфейс или абстрактен клас за да задължавам ако се налага да се сменя конфигурационният файл как да изглежда. Лошото, е че малко на тази тема е зле създаден и се чудех дали е възможно да ми драснете някакъв интерфейс или да ми дадете идея как да го преработя естествено с дадесата структура вътре, че да мога да го ползвам що годе читаво и да се имплементира такъв конфиг, че да указва максимално подробно на абоната какво да има вътре. :)
PHP:
<?php
namespace CCF\DC;
/*
DC - Default Configurations.
*/
class DC{
	public $exceptionHandler = array();
	public $dbase = array();
	public $Controller = array();
	
	public function __construct(){
	
		$this->exceptionHandler = array(
			"show" => true
		);
		
		$this->dbase = array(
			"host" => "localhost",
			"user" => "root",
			"pass" => "",
			"name" => "oop",
			"port" => "",
			"error" => "No connection with database.",
			"sql" => "SQL error.",
			"status" => "500"
		);
		/* Class Controller() settings sorting.*/
		$this->Controller = array(
			/* Class Security()*/
			"Security" => array(
				/* permittedURLcontent($url) <start>*/
				"URLcontent" => "/^[a-z0-9~%.:#_\-+=&?\/]+$/iu",
				"ErrorContent" => "Illegal char contained in the URL.",
				"StatusContent" => "500"
				/*<end>*/
			)
		);
	}
}
 
Попринцип межуд интерфейс и абстрактен клас има някаква разлика, да знам че в PHP, не е така, но е добре да се взима в предвид. Като чета това което си описал, един вид искаш да създадеш някакъв 'pattern' , по който дая могат да се създават конфигурационни файлове. Следователно от кода който си дал, можеш да си направиш интерфейса
PHP:
interface NAME {
protected $property1;
protected $property2;
protected $propertyN

protected method1();
protected method2();
protected methodN();

}

ще трябва и класа да го преработиш, не всичко да ти е в конструктора, а в отделни методи. Към интерфейса ще трябва и да добавиш доста добри коментари Return type-ове и така нататък.
 
mapka7a каза:
Попринцип межуд интерфейс и абстрактен клас има някаква разлика, да знам че в PHP, не е така, но е добре да се взима в предвид. Като чета това което си описал, един вид искаш да създадеш някакъв 'pattern' , по който дая могат да се създават конфигурационни файлове. Следователно от кода който си дал, можеш да си направиш интерфейса
PHP:
interface NAME {
protected $property1;
protected $property2;
protected $propertyN

protected method1();
protected method2();
protected methodN();

}

ще трябва и класа да го преработиш, не всичко да ти е в конструктора, а в отделни методи. Към интерфейса ще трябва и да добавиш доста добри коментари Return type-ове и така нататък.
Интерфейса не ми дава да правя променливи а само методи.
public $a; - това не става.
 

Back
Горе