Articles of design patterns

Каков правильный способ безопасного ввода веб-формы для различных контекстов?

Что вы считаете правильным (читайте: самый гибкий, слабо связанный, самый надежный и т. Д.) Способ сделать вход пользователя из веб-безопасного для использования в различных частях веб-приложения? Очевидно, что мы можем просто использовать соответствующие функции санитизации для каждого контекста (база данных, отображение на экране, сохранение на диске и т. Д.), Но существует ли какой-то общий «шаблон» […]

Как я могу создать успешную фабрику объектов домена в PHP

Я возился с инфраструктурой MVC, и я наткнулся на проблему, я не уверен, как ее решить. Я хочу создать DomainObjectFactory для слоя Model моего приложения, однако каждый объект Domain будет иметь другой набор аргументов, например: Person – $ id, $ name, $ age. Post – $ id, $ author, $ title, $ content, $ comments […]

может наблюдатель наблюдать несколько наблюдаемых?

пытаясь найти пример этого, возможно, что я не пойду правильным путем, или что мой разум более упростил концепцию шаблона наблюдателя. Я хочу создать класс, который управляет сообщениями из веб-службы, и я хочу, чтобы этот класс контролировал изменения многих других операций. Образцы шаблонов наблюдателей, которые я видел, показывают, что многие наблюдатели наблюдают за одним наблюдаемым, могу […]

PHP Singleton PDO

с http://www.php.net/manual/en/class.pdo.php ###### config.ini ###### db_driver=mysql db_user=root db_password=924892xp [dsn] host=localhost port=3306 dbname=localhost [db_options] PDO::MYSQL_ATTR_INIT_COMMAND=set names utf8 [db_attributes] ATTR_ERRMODE=ERRMODE_EXCEPTION ############ <?php class Database { private static $link = null ; private static function getLink ( ) { if ( self :: $link ) { return self :: $link ; } $ini = _BASE_DIR . "config.ini" ; […]

Структура папки для проекта PHP

Я решил полностью переписать старый проект PHP с нуля. Раньше у меня был один файл для каждой страницы, и теперь я хотел бы использовать подход с шаблоном MVC с одной точкой ввода. Сам проект довольно большой, и я пытаюсь создать свою собственную фреймворк, чтобы я мог хорошо интегрировать все. Я искал stackoverflow для подобных вопросов, […]

Шаблон Data Mapper: сложный запрос из уровня сервиса

Я пою шаблон Data Mapper в Zend Framework. Пока это хорошо, но теперь я дошел до того, что мне нужна ваша помощь / мнение. Итак, давайте начнем с кода: У нас есть таблица с несколькими людьми: CREATE TABLE `persons` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` int(3) NOT NULL, `haircolor` varchar(20) […]

Абстрактная статическая функция в PHP 5.3

Я относительный новичок в PHP, и я выясняю, как лучше всего реализовать код доступа к базе данных. Я пытаюсь создать несколько простых объектов доступа к базе данных – каждая таблица получает свой собственный класс, каждый экземпляр класса представляет собой строку в таблице, вы знаете, упражнение. У меня есть код, который, кажется, работает, но некоторые из […]

Вопросы о Command Pattern (PHP)

Я сделал минималистичный пример Command Pattern в PHP после того, как прочитал об этом. У меня есть несколько вопросов … Я хотел бы знать, правильно ли я это сделал? или, может быть, слишком минимальным, тем самым уменьшая точку шаблона команды interface ICommand { function execute($params); } class LoginCommand implements ICommand { function execute($params) { echo […]

Веб-чат в php без использования базы данных или файла

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

Шаблон проектирования для кэширования кэшированных данных

Легко обернуть дополнительное кэширование memcached вокруг ваших существующих запросов к базе данных. Например: Старый (только DB): function getX x = get from db return x end Новый (DB с memcache): function getX x = get from memcache if found return x endif x = get from db set x in memcache return x end Дело […]