Я предлогая разделить эти две обсолютно разные вещи. Попытаюсь объяснить как я понимаю эти понятия. Continue reading
Monthly Archives: Ноябрь 2008
Flash сообщения 2
Как и обещал, вернулся к flash сообщениям. Переделаем его на статические методы. Итак, немножко теории.
Статические методы могут вызываться без создания экземпляра класса (объекта), при объявлении метода указывается ключевое слово static. Точно так же объявляется и статический атрибут класса. Continue reading
Как найти BOM
Если Вы используете utf, то встречались с таким символом, как BOM (Метка порядка байтов). Довольно бессмысленный символ при использовании utf-8, к которому неприемлим этот самый порядок.
Всё бы ничего, но этот лишний символ в начале файла приносит много проблем, когда попадает в вывод скрипта и происходит бом на сайте: не работает js, проблемы с куками и сессиями, просто непонятный символ на экране…. А уж редакторов, любителей вставить сей злосный символ куда не надо, предостаточно. Всегда проклинал блокнотоподобные редакторы, но изредко для быстрой правки использую notepad++. Уже сотню раз собирался выбросить его из-за дурацкого автокомплита, который даже тег <?php не позволяет нормально писать. Но злосный BOM стал его окончательным преговором, надо же при редактировании плагина сей злосный символ попал в плагин контактной формы, а в итоге у меня отвалился javascript в редакторе, я долго не мог понять, пока не включил консоль ошибок в любимом Operaи не вычислил злоумышлинника. Даль любимый Total Commnder и поиск файлов с текстом \xEF\xBB\xBF , для этого нужно отметить RegEx (2).
Asta la vista baby
Новая версия Zend Framework — 1.7
Официальный список обновлений:
- Zend_Amf with support for AMF0 and AMF3 protocols
- Dojo Toolkit 1.2.1
- Support for dijit editor available in the Dojo Toolkit
- Zend_Service_Twitter
- ZendX_JQuery in extras library
- Metadata API in Zend_Cache
- Google book search API in Zend_Gdata
- Preliminary support for GData Protocol v2 in Zend_Gdata
- Support for skip data processing in Zend_Search_Lucene
- Support for Open Office XML documents in Zend_Search_Lucene indexer
- Performance enhancements in Zend_Loader, Zend_Controller, and server components
- Zend_Mail_Storage_Writable_Maildir enhancements for mail delivery
- Zend_Tool in incubator
- Zend_Text_Table for formatting table using characters
- Zend_ProgressBar
- Zend_Config_Writer
- ZendX_Console_Unix_Process in the extras library
- Zend_Db_Table_Select support for Zend_Paginator
- Global parameters for routes
- Using Chain-Routes for Hostname-Routes via Zend_Config
- I18N improvements
- Application wide locale for all classes
- Data retrieving methods are now static
- Additional cache handling methods in all I18N classes
- Zend_Translate API simplified
- File transfer enhancements
- Support for file elements in subforms
- Support for multifile elements
- Support for MAX_FILES_SIZE in form
- Support for breaking validation chain
- Support for translation of failure ,messages
- New IsCompressed, IsImage, ExcludeMimeType, ExcludeExtension validators
- Support for FileInfo extension in MimeType validator
- Zend_Db_Table_Select adapater for Zend_Paginator
- Support for custom adapters in Zend_Paginator
- More flexible handling of complex types in Zend_Soap
Радует появление ZendX_JQuery, неужели будет поддержка jQuery. Ну и обязательно попробую Zend_ProgressBar — прогрес бар для загрузки файлов, наверняка реализовано через apc, посмотрим что разработчикам насоветовали сами создатели php. Добавили поддержку пэйджинга в Zend_Table, ура товарищи, жаль что до этого так долго доходили.
Фреймворк двигается, только неизвестно куда. Даже на сайте в шапке до сих пор висит 1.6, как всегда, на детали плевать
Свой шаблонизатор 2
В первой части мы по всем правилам ООП создали шаблонизатор, теперь наростим его мощь, будем делать это двумя способами:
- Расширая класс Amdy_Templater
- С помощью классов-помощников.
Свой шаблонизатор
Вы хотите отделить логику представления от остальных слоёв приложения? Вам нужен шаблонизатор, желательно простенкий. Ну чтоже, напишем свой.
Обределимся с минимумом:
- Передать переменную в шаблонизатор
- Взять переменную из шаблонизатора
- Отобразить шаблон
Кросбраузерная вёрстка
Я не верстальщик и никогда им не был, но периодически приходитсядобавлять разметку в существующую вёрстку. Есть катигория вёрсток, в которой добавления нового превращается в ад. А избежать этого в большинстве случаев очень легко.
Каждый браузер обладает своими багами-фичами и норовит отобразить элемент по своему. Бороться с этим не так трудно, если всё нужное было сделано на первоначальном этапе. Как заставить отображать одинково и не использовать видеье браузера? Нужно запретить отображать по своему и сказать как.
Итак запрещаем. ДЛя этого используем «ластик», который сбрасывает спорные моменты. В css прописываем:
* {magin: 0px; padding:0px; }
Так мы избавляемся от основной проблемы — разных отступов.
img {border: none; }
А так, фиксим отображение картинок.
Теперь можно продолжать магию, но важно помнить, что довёрстывать возможно будет человек не знакомый с вашими планами. Прописывая стили нужно стараться как можно уже описать круг их применения.
Например, p {padding-left:10px;}, вроде удобно, но если затем придётся вставлять абзац без отступа, то сложно догадаться, а почему это отступ слева появился. Куда нагляднее p.paddingLeft10 {padding-left:10px;}
А ещё здорово помогают заготовки типо
pl10 {padding-left:10px;}
pr15{padding-right:15px;}
<p class="pl10 pr15">text</p>
Вот с таким минимумом куда приятнее иметь дело и скорость возрастает вразы.
Flash сообщения
Часто бродя по сайтам и заполняя формы встречаю некоторые типичные недоработки при обработке форм.
Например, после обработки забывают сделать редирект, в итоге при нажатии «Обновить», данные посылаются повторно, что очень неприятно.
Поэтому, не забываем
header('Location: ' . $url);
Чёрный пиар. Сокрытие доходов и неуплата налогов гражданами белоруси.
Недавно на Хабре прочёл пост о девушке, которая решила бороться с незаконными доходами фрилансеров и предлагает сдавать сих бандитов. Естественно на блог ломанулись кучи народа в основном чтобы обидеть ангелочка.
И практически сразу начали появляться ссылки, в том числе на фрилансерские сайты и на скачку фильмов. Плюс была интересная статья о единстенном «чесном» фрилансере, зайдя по ссылке полез посмотреть форму обратной связи, оказалось «обязательные» поля не такие уж и обязательные, о чём я оставил комментарий. Видимо я был не один и статью побыстренькому убрали. На этом этапе я убедился, что проект носит вовсе не моральный характер, а желание пропиариться. Не знаю, девушка это или группа людей, но акция явно удалась. Игра на нелюбви к государству и нежелании делиться сработала.
В вопросе налогообложения блогерша явно не разбирается и привела компрометирующий пример с братом (Оплата налогов с суммы, полученной “оттуда”), который якобы делает переводы и при оплате через Wester Union у него снялись налоги и всё, он святой фрилансер. У меня был неприятный опыт с налоговой по данному вопросу. Пришлось покататься и пообщаться с работниками данного органа. Плюс была парочка замечательных комментариев на эту тему. Официально её брат не только не платит налоги, но и к тому же, незаконно занимается предпринимательской деятельностью.
На этом пиарщица решила не останавливаться, ведь постепенно блог стал остывать, и она бросила новую кость. Как известно, белорусский президент, не смотря, на 87% голосов на выборах является непопулярным героем, вот Вам и новая статья – «Президента не смейте трогать!».
Интересно, чего ждать дальше?
И почему мы попадаемся на такие вещи, хотя и знаем, что это полный бред.
Все, а мне пора заняться незаконным зарабатываением денег.