Безграмотные. Улучшаем собственную производительность с использованием вспомогательных функций PHP

Kernel::getInstance(); // Согласно Singleton

Вот скажите, с какогу перепугу Вы сами послезавтра или кто-то другой с отличной от Вашей логикой, может догадаться что в результате Kernel::getInstance() будет сформирована страница? Где тут это написано? Вместо легко понятного ну хотя бы

Kernel::getInstance()->showMeThePage();

Вы будете долго рыться в коде или писать, а затем читать килограмы документации по проекту... Но это так, присказка.

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

Ваши классы должны быть спроектированны таким образом, что бы пользователь класса имел возможность ПОЛНОСТЬ влиять на поведение экземпляра. У Вас все с точностью до наоброт. Вы предусмотрели только один вариант использования класса - результат, который будет получен после отработки конструктора. То есть Вы даже не сможете повторно получить тот же самый результат без повторной конструкции экземпляра.

Если бы у Вас было хотя бы так

// Здесь мы просто указываем конкретные объекты $k = Kernel(new MySpecificDb($config),new MyOtherSpecific()); // и мы можем в любое время сделать все что угодно и с этими // объектами и с ядром, изменив его поведение путем // подмены этих объектов $myDb = $k->getDatabase(); $k->setDatabase(new LogQueries($myDb)); // другой код инициализации // После всего этого мы заставляем ядро выполнить свою задачу $k->runPage();

PS. А адаптор используется именно для адаптации одного интерфейса под другой. Я сначала не понял в чем проблема с аргументами.

-~{}~ 13.05.08 14:07:

В догонку

Есть класс Config, его методы (первоначальная загрузка параметров конфигурации из БД, получение значение конфигурационного параметра по ключу) используются в других методах других классов многократно (Kernel, Module).

Может быть единственный экземпляр класса Config используется многократно? Это разные вещи:

1. я создал 50 экземпляров класса Config, методы каждого из которых вызывались по 1 разу - я 50 раз использовал тип Config.

2. я создал 1 экземпляр класса Config, методы которого вызывались 50 раз - я 1 раз использовал тип Config.

Какая разница, сколько раз Вы сложите два числа, если практическая ценность типа число в программе от этого не меняется? Насколько выше ценность типа число в программе, которая использует 500 различных числовых значений, то есть использует тип число 500 раз?

I нареч. качеств. 1. Не умея читать и писать (о человеке). 2. Допуская много грамматических и стилистических ошибок, не соответствуя нормам литературного языка (о тексте). 3. перен. Не соответствуя основным требованиям какой либо области знаний;… … Современный толковый словарь русского языка Ефремовой

Грамотно … Словарь антонимов

безграмотно - Присл. до безграмотний … Український тлумачний словник

безграмотно - см. безграмотный; нареч. Безгра/мотно писать. Завод спроектирован безгра/мотно … Словарь многих выражений

безграмотно - прислівник незмінювана словникова одиниця … Орфографічний словник української мови

безграмотно - безгра/мотно … Правописание трудных наречий

Неумело, коряво, безграмотно, малограмотно, неквалифицированно, неискусно, небрежно, невежественно, на низком уровне, через пень колоду Словарь русских синонимов. неграмотно см. неумело Словарь синонимов русского языка. Практический справочник. М … Словарь синонимов

Невежественно, неграмотно, безграмотно Словарь русских синонимов. малограмотно неизм. 1. безграмотно неграмотно 2. безграмотно неграмотно некомпетентно … Словарь синонимов

На низком уровне, коряво, безграмотно, неграмотно, неквалифицированно, халтурно, небрежно, через пень колоду, неискусно Словарь русских синонимов. неумело неискусно, неграмотно, безграмотно, неквалифицированно, на низком уровне; коряво (разг.)… … Словарь синонимов

Книги
  • , А. Семенов , Мы живем во времена, когда неофашизм стал весьма популярным идейным поветрием среди определенного пласта молодежи. Пласта пока еще малочисленного, к счастью. Телевидение и газеты, наши… Категория: Общество Издатель: Золотое Сечение ,
  • Роковая любовь к мистическому фашизму , Семенов А. , Мы живем во времена, когда неофашизм стал весьма популярным идейным поветрием среди определенного пласта молодежи. Пласта пока еще малочисленного, к счастью. Телевидение и газеты, наши… Категория:

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

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

Вспомогательная функция для ссылок

Одной из распространенных повторяющихся задач является написание ссылок. С помощью создания вспомогательной функции для данной задачи мы можем сократить время разработки приложения, исключить возможность синтаксических ошибок, и сделать код более простым для модификации, если файл будет удален или сайт будет перемещен на другой домен. Для начала напишем очень простую функцию в файле helpers.php: