Сообщения

Сообщения за октябрь, 2021

Пути к файлам Unix

Изображение
Примеры путей в Unix: В операционной системе Linux может быть несколько видов путей к файлу. Давайте рассмотрим какие бывают пути в linux: Полный, абсолютный путь linux от корня файловой системы  - этот путь вы уже видели в примере выше, он начинается от корня "/" и описывает весь путь к файлу; Относительный путь linux  - это путь к файлу относительно текущей папки, такие пути часто вызывают путаницу. Путь относительно домашний папки текущего пользователя.  - путь в файловой системе, только не от корня, а от папки текущего пользователя.   Первая ссылка указывает на текущую папку (.), вторая (..) указывает на папку уровнем выше.   Н апример, чтобы сослаться на файл в текущей папке можно использовать конструкцию: ./file1 Вторая ссылка вам позволяет получить доступ к файлам в папке выше текущей. Например: ls ../tmp/file1

namespace пространство имен

Изображение
  К сожалению, в силу исторических причин, пространства имён в PHP появились не с самого начала существования языка, как это принято при разработке языков.  И з-за этого получилось, по сути, два независимых механизма: один - включение файлов как таковых другой - пространства имён

Трейты

  Трейт - это механизм обеспечения повторного использования кода в языках с поддержкой только одиночного наследования, таких как PHP. Трейт предназначен для уменьшения некоторых ограничений одиночного наследования Пример: <?php trait  ezcReflectionReturnInfo  {     function  getReturnType () {  /*1*/  }     function  getReturnDescription () {  /*2*/  } } class  ezcReflectionMethod  extends  ReflectionMethod  {     use  ezcReflectionReturnInfo ;      /* ... */ } class  ezcReflectionFunction  extends  ReflectionFunction  {     use  ezcReflectionReturnInfo ;      /* ... */ } ?> Приоритет  ¶ Наследуемый член из базового класса переопределяется членом, находящимся в трейте. Порядок приоритета следующий: члены из текущего класса переопределя...

Отличие абстрактного класса и интерфейса

Изображение
  Когда использовать классы, а когда – интерфейсы? Нужно руководствоваться следующим подходом. Интерфейс описывает поведение и возможности своих реализаций. Обратите внимание на классические названия интерфейсов: Throwable, Countable, Comparable, Iterable, Rollable (катящийся), Foldable (складывающийся). А абстрактный класс описывает сущность – например, стол: Table_Abstract. Стол может быть деревянным: Table_Wood extends Table_Abstract. Или хирургическим: Table_Surgical extends Table_Abstract. В таком случае Table_Abstract объединяет общие свойства всех столов (площадь поверхности, наличие ножек и т.п.). А конкретный класс описывает сущность определенного типа столов.  Связь интерфейсов и классов описывает свойства. Например, стол можно катить: Table_Abstract implements Rollable. Деревянный стол можно сложить: Table_Wood implements Foldable. Интерфейс - описывает поведение (катится, складывается, шифруется) Класс абстрактный - описывает объект

Позднее статическое связывание

Работает он очень просто — достаточно вместо слова «self» написать «static» и связь будет установлена с тем классом, который вызывает данный код , а не с тем, где он написан: https://habr.com/ru/post/259627/

Реализация паттернов композитор и декоратор

 Реализация паттерн композитор не простой тут я столкнулся с тем что я не особо имею опыта в реализации рекурсивных алгоритмов. С декоратором все на много проще, я его сходу понял потом что лучше стал понимать паттерны и попалось хорошее видео разбора. UML  пока только больше путают, но надеюсь это не надолго)

webgrind оценка профайла скрипта PHP

 https://www.simplecoding.org/webgrind-udobnyj-interfejs-dlya-analiza-bystrodejstviya-php-skriptov.html нашел гуд ссылку

Давно ничего не писал

Начал заниматся с geek brains на курсе углубленного понимания PHP Учу паттерны в процессе стажировки на AVADA MEDIA  Выучил стандартные паттерны Creational сделал уже половину Структурных, туплю над Компоновщиком  Не могу догнать его структуру, думаю перенести абстракцию с дерева на червяка типо он состоит с отдельных частей так и отрекзков которые соддержат кусочки Сейчас впариваюсь в webgrind для визуализации работы приложения. Возникает вопрос как эммитировать нагрузк? Вчера с Диким обсудули мой код и я понял что надо чуток нажать на PSR coding style и договариватся с Повором на презентацию паттернов, так сказать на их защиту. Хочу еще PHPUnit поучить