А польза-то в чем? if(strlen($login > 12) || strlen($login < 3)){ die('Wrong Login'); } Что должно заставить меня писать эту простыню и тащить ошибку через 3 уровня абстракции?
Уроки очень полезные! Но есть вопросик: Возможно ли при подключённом Autoload создавать объекты, просто прописывая название самого класса? Например: $worker = new Worker(); или же непосредсвенно нужно вводить полный путь до самого класса, как показано на видео? Если же нет, то как можно это сделать, не прописывая 'require' или 'use' для каждого класса, при этом, чтобы Autoloader работал? За ответ буду очень благодарен.
Спасибо за видео. Но не услышал ответа: В чем разница если передавать параметр как класс и как интерфейс в методе интерфейса? Проектируя на основе интерфейсов по идее нет возможности 100% знать как будет называться класс... В чем разница? interface PersonInterface { } interface CityInterface { publuc function addPerson(PersonInterface $person); publuc function addPerson(Person $person); }
1) внутри созданных классов UserPasswordException и UserLoginException было создано свойство "protected string $message " , которое на самом деле уже создано в родительском классе Exception, а мы просто дали ему значение в нашем классе наследнике. Таким образом многие зрители могли войти в заблуждение 2) метод "getMessage ( )" внутри метода "die()" тоже был определен в родительском классе "Exception", которым воспользовались в нашем классе наследнике. Про это автор видео сказал что-то, но как-то не внятно. В результате чего опять таки могут возникать вопросы. Вот само строение класса Exception и ниже ссылка на сайт для доп инфо Exception implements Throwable { /* Properties */ protected string $message ; protected int $code ; protected string $file ; protected int $line ; /* Methods */ public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = null ]]] ) final public getMessage ( ) : string final public getPrevious ( ) : Throwable final public getCode ( ) : mixed final public getFile ( ) : string final public getLine ( ) : int final public getTrace ( ) : array final public getTraceAsString ( ) : string public __toString ( ) : string final private __clone ( ) : void } ссылка на сам сайт www.php.net/manual/en/class.exception.php