Шаблоны разработки программного обеспечения с pHp 5

{title}

Хотя наше программное обеспечение отличается от всего и очень новое, оно всегда будет иметь части, общие для разработки программного обеспечения: доступ к данным, сетевое взаимодействие, управление объектами и данными, операции и сравнение данных и т. Д.
Вместо того, чтобы решать то, что уже решено, мы можем реализовать проблему, используя некоторый предопределенный шаблон, поскольку у нас есть большое преимущество в том, что они представляют собой решения, протестированные и задокументированные другими программистами.
Много раз мы используем какой-то шаблон для программирования программного обеспечения, и мы не знаем его из-за незнания, поскольку не все программисты знают, что у него есть несколько уже протестированных, функциональных и готовых к использованию решений.

{title}


Типы шаблонов проектирования pHp
Шаблон проектирования Singleton: этот тип шаблона допускает только один экземпляр объекта или класса, его приоритет заключается в том, чтобы гарантировать, что для класса вызывается только один экземпляр. Мы видим пример применения этого шаблона в коде pHp
 count = 0; } открытая статическая функция invoke instance () {if (! self :: $ instanceof self) {self :: $ instance = new self; } return self :: $ instance; } публичная функция add () {return ++ $ this-> count; } публичная функция subtract () {return - $ this-> count; }}?> 
Давайте попробуем реализовать класс, чтобы увидеть результат
 добавить (). "\ n"; echo "Summon sum." $ calc-> add (). "\ n"; echo "Вызвать вычитание:". $ calc-> subtract (). "\ n"; echo "Summon вычитание." $ calc-- subtract (). "\ n"; ?> 
Поскольку мы видим, что параметры класса имеют частную видимость, поэтому мы не можем ни вызывать, ни модифицировать конструктор класса, мы можем получить доступ только к функции invoke instance (), поэтому у нас нет способа изменить данные класса, кроме это позволяет нам делать вызванную функцию. Класс создается только один раз.
Шаблон дизайна стратегии
Шаблон разработки стратегии связан с интерфейсами и полиморфизмом, цель состоит в том, чтобы создать несколько решений, а затем реализовать то, что нам подходит в соответствии с тем, что нам нужно. Предположим, у нас есть приложение, которое должно выдавать отчеты в формате Excel или pdf, например, оно используется в CMS Prestashop
Давайте рассмотрим пример шаблона проектирования типа стратегии для создания нескольких отчетов:
 интерфейс отчетов {функция generateinforme (); } класс Report PDF реализует отчеты {private $ dbdatosinforme; function __construct ($ dbdatosinforme) {$ this-> datainformation = $ dbdatosinforme; } function generateinformation () {// Вот код для создания отчета в формате pdf с данными матрицы $ dbdatosinformation, которая была взята из любого запроса к базе данных //}} класс ReportExcel реализует отчеты {private $ dbdatosinforme; function __construct ($ dbdatosinforme) {$ this-> datainformation = $ dbdatosinforme; } public function generateinfrome () {// Вот код для генерации отчета, который создаст файл Excel с данными из матрицы $ dbdatosinformation, которая была взята из любого запроса к базе данных //} 
Теперь мы должны реализовать интерфейс и полиморфизм в классе
 класс Reports {private $ patternstrategy; частный $ dbdatosinforme; function __construct ($ dbdatosinforme) {$ this-> datainformation = $ dbdatosinforme; } function assignpatron (Reports $ pattern) {$ this-> templates стратегия = $ pattern; } function create report () {$ this-> patternstrategy-> Генерировать отчет (); }} 
Наконец, мы реализуем класс, который скрывает интерфейс в приложении, которое мы разрабатываем
 assignpatron (новый отчет в формате PDF ($ data)); $ report-> create report (); } If ($ type report = ”excel”) {$ report-> assignpatron (новый отчет Excel ($ data)); $ report-> create report (); } 
Таким образом, мы можем наблюдать, как с помощью двух разных стратегий мы решили проблему создания двух совершенно разных отчетов, которые мы затем можем использовать в соответствии с потребностями или требованиями, которые у нас есть, и этот код можно повторно использовать в других разрабатываемых нами приложениях.
Шаблон проектирования MVC
Хорошо известным шаблоном дизайна в веб-дизайне является шаблон MVC (модель, представление, контроллер). Шаблон Model-View-Controller для проектирования веб-приложений является стандартом, широко используемым такими средами, как Zend, Codeigniter, Yii, Cakephp и другими. Основная цель этого шаблона - предоставить трехслойную архитектуру для нашей разработки, Модель, Представление и Контроллер. В некоторых случаях он расширяется с использованием шаблона HMVC, который добавляет к этому шаблону характеристику управления слоями иерархическим или модульным способом.

{title}


Модель отвечает за управление данными и делает запросы к источнику данных - базе данных или файлу данных. Только контроллер может взаимодействовать с моделью и через функцию, которая будет возвращать или принимать данные, но не может изменять поведение модели.
Vista представляет информацию на экране веб-дизайна. Вы можете общаться только с контроллером и отображать данные, отправленные на него, чтобы можно было просматривать веб-страницы. Контроллер отвечает за отправку вопросов в модель и получение данных, обработку результатов, если это необходимо, и отправку ответа представлению, чтобы оно отображало их на экране.
Пример шаблона MVC
Мы создаем пример модели данных на основе платформы Codeingiter
 db-> get («студенты»); // вернуть результат запроса return $ data ['result']; }}?> 
Мы создаем контроллер, чтобы иметь возможность общаться с представлением и с моделью
 нагрузка-> модель (Alumnosmodel '); // Добавляем плагин, который нам нужен для управления базами данных $ this-> load-> database (); } // Мы создаем функцию, которая будет запрашивать модель и отправлять данные в представление функции show Students () {$ data [title page] = Список студентов '; // Обратитесь к модели $ data ['result'] = $ this-> Students -> queryralums (); // отправляем результат запроса в представление $ this-> load-> view ('список студентов, $ data); }}?> 
Наконец, мы создаем представление, которое будет вызываться из контроллера, которое должно называться listaalumnos.php и будет содержать следующий код в html

result_array () как $ student):?>
названиезапись
Как мы видим, Model Vista Controller (MVC) очень прост в использовании и очень полезен для разработки программного обеспечения, поскольку он разделяет данные из базы данных, дизайн приложения и логику программирования на три различных компонента, включая Он может быть разработан разными людьми или командой.
Преимущество шаблона MVC состоит в том, что администратор базы данных может запрашивать модель, программист, контроллер и представление веб-дизайнера, не обращаясь к функциям, которые не соответствуют.
В шаблоне MVC все контроллеры находятся в одном каталоге, все представления в каталоге и одной и той же модели, в шаблоне HMVC они разделены модулями, каждый каталог является модулем, например, модуль Customers будет иметь свой контроллер, модель и представление. модуль Sales будет иметь свой собственный MVC в отдельном каталоге продаж.

  • 0