Pull to refresh
6
0
Максим Левитан @MaxLevitan

User

Send message

Паттерн проектирования «Заместитель» / «Proxy»

Reading time7 min
Views54K
Почитать описание других паттернов.

Проблема


Необходимо контролировать доступ к объекту, не изменяя при этом поведение клиента.

Описание


При проектировании сложных систем, достаточно часто возникает необходимость обеспечить контролируемый доступ к определенным объектам системы. Мотивацией для этого служит ряд приобретаемых преимуществ. Таких как, ленивая инициализация по требованию для «громоздких» объектов, подсчет количества ссылок на объект и т.д. и т.п. Однако, не всегда потребность в контролируемом доступе к объекту базируется только на преимуществах. Как правило, сложность процессов реального мира, ограничения вычислительных ресурсов просто не оставляют проектировщику выбора, нежели как воспользоваться паттерном «Заместитель» («Сурогат»).
Читать дальше →

Список полезных инструментов для php разработчика

Reading time10 min
Views149K
PHP один из самых широко используемых языков для создания вебсайтов. PHP фреймворки, такие как Zend, CakePHP, CodeIgniter и т.д и open source классы и библиотеки упростили разработку.
Независимо от того, являетесь ли вы опытным разработчиком или новичком, инструменты, которые вы используете, имеют прямое влияние на вашу продуктивность. Здесь собран список действительно полезных утилит и расширений для PHP разработчиков, которые помогут ускорить разработку, и улучшит итоговое качество кода.
Читать дальше →

Symfony 2 и Doctrine 2

Reading time10 min
Views37K
Продолжая изучать Symfony 2 я решил описать использование фреймворка в связке с Doctrine 2, так как это один из самых часто задаваемых вопросов. И стоит заметить Doctrine 2 так же претерпел серьезные изменения в сравнении с веткой 1.x. Сам по себе проект Doctrine настолько большой, что описание его потянет пожалуй на небольшую, но интересную книгу. Поэтому я лишь очень бегло опишу пример использования Doctrine 2 в Symfony 2, позволяющий разобраться как запустить эту связку и сделаю это на примере очень меленького и простого приложения.
Читать дальше →

Динамические роли и права

Reading time3 min
Views3.7K
Случилось мне давече писать динамическую систему ролей и прав для интернет-магазина.
Поскольку в интернете ничего нужного, кроме вот этой серии статей не нашел, придумал написать все сам.
Читать дальше →

Фокус с HeadScript (сборка в один файл)

Reading time8 min
Views3.2K
Если сделать так:
<?php $this->headScript()->appendFile('/js/my1.js');?>
<?php $this->headScript()->appendFile('/js/my2.js');?>
<?php $this->headScript()->captureStart() ?>
  var action = '<?php echo $this->baseUrl ?>';
<?php $this->headScript()->captureEnd() ?>

<?php echo $this->headScript(); ?>
<?php echo $this->magicHeadScript(); ?>


то вместо чего-то типа такого:
<script type="text/javascript" src="/js/my1.js"></script>
<script type="text/javascript" src="/js/my2.js"></script>
<script type="text/javascript">
  var action = '/123';
</script>

получим на выходе:
<script type="text/javascript" src="/cache/js/1b1004a203..._compressed.js"></script>

Читать дальше →

Zend Framework советы и трюки

Reading time6 min
Views3.8K
Zend Framework советы и трюки

Перевод статьи Zend Framework tips and tricks.
автор: Juozas devBlog

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

Большинство рекомендаций фокусируется на легкости тестирования, легкости поддержки и других хороших практиках кодирования. Если Вы не знакомы с этими рекомендациями, советую начать читать как можно скорее. Уверен, что Вы совершаете описанные здесь ошибки и даже не подозреваете, как вы ошибаетесь. Поверьте, очень скоро Вы значительно улучшите свои навыки разработки.
Читать дальше →

Альтернатива визивига или новый инструмент?

Reading time2 min
Views2K
В нашей компании мы всегда стараемся следить за достижениями прогресса и использовать все новейшие разработки. Конечно, это сложнее, чем идти протоптанными дорожками и не всегда находит одобрение, но такова судьба всех первопроходцев. Сегодня хотелось бы рассказать о нашем редакторе отчётов, который был разработан для нашей социальной сети Геоид.

При разработке интерфейсов всегда надо опираться на то, что чем больше возможностей даёшь пользователю, тем более неправильно он их использует. Целые тома рукописей известных и не очень писателей, написанные без использования красных букв на зелёном фоне, жирных выделений и подчёркиваний с перечёркиваниями, остаются великими произведениями. Наша задача, если и не пробудить в пользователе второго Александра Сергеевича, то, как минимум, помочь ему легко, гибко и удобно написать красивую статью, но при этом полностью исключить возможность её испортить. Это не ограничение свободы, это лишь свод законов, которые мы не даём нарушить. Это правила, по которым, в конечном счёте, живёт общество. И любая социальная сеть, по своей сути, является своеобразным государством со своими гражданами (пользователями) и чиновниками (администраторами ресурса). Но, это уже совсем другая история, вернёмся к нашей теме…
Читать дальше →

CKEditor файловый менеджер

Reading time4 min
Views27K
В связи с выходом новой версии популярного и весьма функционального WYSIWYG редактора, пришлось сделать небольшой файл менеджер.

Причиной тому послужило отсутствие по умолчанию стандартного файл менеджера, есть конечно CKFinder но он на платной основе.
Поискав разные альтернативы решил потратить время на создание простенького но своего файл менеджера на манер CKFinder'а, что вам и представляю.
Пришлось поискать как интегрировать его с редактором, документации мало, но в конце концов вроде получилось :)

Возможности: Загрузка нескольких файлов, создание папок, транслит закачиваемых файлов, переименование, хотя чего перечислять стандартно всё :)
Общий стиль на манер CKFinder в гамме ACDSee 3
Читать дальше →

Формы в Zend Framework

Reading time6 min
Views13K
Меня часто спрашивают, какой мой любимый компонент в Zend Framework, и я всегда отвечаю: «Forms» (формы).
В парадигме модель-представление-контроллер формы всегда играют непростую роль. Конечно, форма — это всего лишь HTML,
но для меня это нечто более абстрактное.
По сути, форма — это HTML, средствами которого пользователь вводит и получает данные, но кроме этого форма еще выполняет
нормализацию, проверку, фильтрацию данных и вывод сообщений об ошибках, если они есть.
Это может потребовать довольно-таки значительного объема кода.

Читать дальше →

Разработка через тестирование с Zend Framework и PHPUnit

Reading time7 min
Views4.6K
Проведя последние несколько дней за изучением документации по Zend Framework, я был приятно удивлен новым функционалом, который был добавлен в последнюю версию этого каркаса Web-приложений.
Моей первой мыслью было осознание скорости, с которой взрослеет технология PHP.
Легкость совместного использования Zend Framework и PHPUnit — это, на мой взгляд, одно из наиболее значительных достижений.

Читать дальше →

Named scope для Zend Framework

Reading time3 min
Views1.4K
Работая с базой, постоянно приходится писать множество методов поиска. Вот типичный сценарий:

Предположим, что нам надо выводить список пользователей на сайте. Вначале это может быть так — $user_table->fetchAll(). А если нужно выводить только девушек? Напишем метод getFemaleUsers(). А только тех, кто не забанен и имеет аватарку? А вывод в админке только девушек, но без учета статуса пользователя?

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

Читать дальше →

ZendFramework QuickStart — Создание Проекта

Reading time11 min
Views14K
Данная статья не является чем то сверхестественным и подойдет скорее для тех, кто начинает изучать
Zend Framework. Так уж получилось что сам я начинал изучение с версии
1.7, но незадолго после начала познания данного инструмента меня забрали в армию, и год я программированием не занимался. Сейчас до возвращения в родные края остался месяц, а так же появилось свободное время.
В начале изучения какого либо инструмента, как я заметил по себе всегда хочется иметь его под рукой, чтобы сразу же при возможности
поковыряться а не перечитывать предварительно кучу документации.
Так у меня было с Zend Framework, когда он был еще версии 1.7
Пришлось перечиать несколько статей и пересоздать кучу каталогов,
чтобы настроить рабочий Zend Framework проект. Собственно данная статья является своего рода переводом статьи Zend Framework Quick Start | Create Your Project для версии Zend Framework 1.10.5
С некоторыми исправлениями и примечаниями.
Прочитав ее я думаю вы с легкостью создадите рабочий Zend Framework
проект и сразу же перейдете к изучению на практике.

В общем то, если все же кому то статья покажется по вкусу, возьмусь
за перевод всех статей серии Quick Start.

Итак, поехали…
Читать дальше →

Как найти вашего первого клиента

Reading time4 min
Views88K
imageКогда станете хорошо известны в своем деле, клиенты будут постоянно обращаться к вам, а не выбудете искать их. Когда есть много работы, то и стараться продавать свои услуги не будет особой нужды.

Но, что делать, если только начинаешь? Прежде чем станут обращаться клиенты, могут быть проблемы с тем, что делать целый день. Это идеальное время, чтобы дать о себе знать.

Поиск клиентов для каждого разный и то, что работает для одного, не всегда работает для другого. Тем не менее, я бы хотел поделиться некоторыми из способов, при помощи которых я получал работу в самом начале.
Читать дальше →

Интеграция Doctrine2 и ZendFramework

Reading time10 min
Views4.6K
Время не стоит на месте, и надо бежать за временем.
Вот уже и ZF2 на подходе. Выпущен первый milestone. Zend Framework 2.0.0dev1 Release. Doctrine2 BETA3 — был в пятницу.
А хороший программист никогда не стоит на месте — времени нету. Отстанет и вперёд — делай таблицы — «Code for the Food».

Дело было вечером делать было нечего…

Скачав исходные коды библиотек начали играться. Цель — получить возможность создание моделей сохраняя структуру ZF и работать через подключение Doctrine2.
Для начала нам нужно поместить в include_path классы, которые являются частью Doctrine2.

library/Doctrine
libray/Symfony


Symfony нужно будет, что бы использовать инструмент из коробки для работы Doctrine2 (два компонента Console и Yaml).
В configs/application.ini прописываем данные для авто загрузчика.
autoloadernamespaces.doctrine = "Doctrine"
autoloadernamespaces.symfony = "Symfony"


Продолжение под катом. Какие опции нужно прописать в application.ini. Как подключить Doctrine2, исходный код ресурс плагина.
Читать дальше →
12 ...
14

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity