Articles of design patterns

Лучшая практика в отношении одноэлементных классов PHP

Возможный дубликат: Кому нужны синглеты? Я всегда пишу в отношении лучшей практики , но я также хочу понять, почему данная вещь – лучшая практика . Я читал в статье (я, к сожалению, не помню), что классы singleton предпочтительнее создавать, а не делать со статическими функциями и получать доступ с помощью оператора разрешения области (: :). […]

«Правильное» разделение / разность между index.php и фронт-контроллером

Что касается приложения PHP MVC, какова разница в работе файла index.php и переднего контроллера? Является ли фронт-контроллер в index.php , или он находится в отдельном файле? Как отделить их и позволить им работать вместе? Предполагается ли, что фронт-контроллер является классом (или как его собственный объект)? (Если это так, то index.php будет создавать экземпляр переднего контроллера?) […]

Можете ли вы динамически создавать свойства экземпляра в PHP?

Есть ли способ создать все свойства экземпляра динамически? Например, я хотел бы иметь возможность генерировать все атрибуты в конструкторе и по-прежнему иметь доступ к ним после создания экземпляра класса следующим образом: $object->property . Обратите внимание, что я хочу получить доступ к свойствам отдельно и не использовать массив; вот пример того, чего я не хочу: class […]

Схема стратегии утиного уха – первый образец дизайна головы

Я хочу спросить кое-что о примере утки в этой книге, которая смутила меня, и я чувствую противоречия. проблема выводы Он сказал, что « когда Джо добавил новое поведение к суперклассу утки, он также добавил поведение, которое не было подходящим для подклассов suum Duck » НО в заключении он добавил performFly() и performQuack(); что такое другое, […]

Можно ли создавать статические классы в PHP (например, в C #)?

Я хочу создать статический класс в PHP и вести себя так же, как на C #, поэтому Конструктор автоматически вызывается при первом вызове класса Нет необходимости в создании экземпляра Что-то в этом роде … static class Hello { private static $greeting = 'Hello'; private __construct() { $greeting .= ' There!'; } public static greet(){ echo […]

Попытка понять шаблон Post / Redirect / Get (реализованный с помощью PHP)

Все, Извините заранее – я не эксперт по PHP или не осведомлен в шаблонах проектирования, поэтому этот вопрос может быть немного базовым … Во всяком случае, я работаю над веб-приложением, для которого требуется логин. Мой план состоит в том, чтобы иметь что-то вроде этого: index.php: эта страница будет содержать простую форму, которая позволяет пользователям вводить […]

Если Синглтоны плохие, то почему Service Container хорош?

Мы все знаем, насколько плохи синглтоны , потому что они скрывают зависимости и по другим причинам . Но в рамках может быть много объектов, которые должны быть созданы только один раз и вызваны извне (logger, db и т. Д.). Чтобы решить эту проблему, мне сказали использовать так называемый «Диспетчер объектов» (или Сервисный контейнер, такой как […]

Используя шаблон Data Mapper, должны ли объекты (объекты домена) знать о Mapper?

Я впервые работаю с Doctrine2, но я думаю, что этот вопрос достаточно общий, чтобы не зависел от конкретной ORM. Должны ли объекты в шаблоне Data Mapper знать – и использовать – Mapper ? У меня есть несколько конкретных примеров, но все они, похоже, сводятся к одному и тому же общему вопросу. Если я имею дело […]

Понимание MVC

В последние несколько дней я широко читал книги и веб-страницы об ООП и MVC в PHP, чтобы я мог стать лучшим программистом. Я столкнулся с небольшой проблемой в моем понимании MVC: Где я могу разместить mysql_query ? Должен ли я помещать его в контроллер и вызывать метод на модели, которая возвращает данные на основе предоставленного […]

Создание потоковой частной системы обмена сообщениями, такой как facebook и gmail

Я создаю поточную систему сообщений, подобную gmail и facebook, где в папке «Входящие» перечислены самые последние потоки, отображающие тему, имя отправителя и отметку времени последнего сообщения. Вот как мои таблицы настроены: users: user_id user_name thread: thread_id title to_id to_keep to_read from_id from_keep date message: message_id thread_id to_id from_id message_text date То, что я делаю прямо […]