PHP » proft.com.ua [Блог о Web, IT, life]

Примеры реализаций паттернов проектирования в PHP

120 PHP 2 комментария

Про паттерны (шаблоны) проектирования уже много было сказано, если вкратце - это готовые подходы к решению определенных задач. Более подробно читайте на Wikipedia - Шаблоны проектирования, или монументальный труд “банды четырех” (GoF):

Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования.

В этом же посте я приведу структурную диаграмму паттернов и ссылки на сайты с примерами реализаций на PHP.

Далее »

Примеры использования PDO

174 PHP Комментариев нет

С релизом PHP 5.1 появился новый абстрактный слой баз данных (БД) - PDO (PHP Data Objects).

Назначение:

  • Общий интерфейс доступа к любому числу БД
  • Написан на С, следовательно большая скорость выполнения, по сравнению с классами написанными на PHP
  • Упрощение интерфейса работы с БД

Поддерживает следующие драйверы БД:

  • MySQL 3,4,5
  • PostgreSQL
  • SQLite 2 & 3
  • ODBC
  • DB2
  • Oracle
  • Firebird
  • FreeTDS/Sybase/MSSQL

Далее »

phpDocumentor

92 PHP Комментариев нет

phpDocumentor предоставляет автоматическое документирование исходников вашего php кода.

Коротко о возможностях:

  • вывод документации в HTML, PDF, CHM, XML DocBook
  • два режима управления: через веб интерфейс и командную строку
  • настраиваемый вывод в шаблонах на базе Smarty
  • автоматическое связывание, диаграмма наследования классов и умное переопределение
  • настраиваемая подсветка кода, перекрестные ссылки (phpxref)
  • парсинг README/CHANGELOG/INSTALL/FAQ файлов и включение их в документацию
  • генерация списков todo из @todo тегов в коде
  • легкое расширение документации для специфических нужд с помощью Converter
  • конфигурационный файл позволяет настраивать повторяющиеся и рутинные задачи
  • несколько HTML шаблонов оформления документации

Далее »

Отладка PHP скриптов с помощью XDebug в Eclipse и VIM

166 PHP Комментариев нет

Полезные ссылки по настройке XDebug в Eclipse и VIM найденные на просторах гиперпростаранства :) :

Getting Started with Eclipse PHP Development Tools (PDT)

Материал полезен для новичков т.к. в нем описано установка PDT, подгрузка плагинов JSEclipse, Subclipse. И то из-за чего статья попала в этот список - установка Zend Debugger.

How To Setup a Free PHP Debugger using Eclipse PDT + XDebug

Подробнейшие описание настройки XDebug в Eclipse с картинками. В качестве сервера используется XAMPP. Также описан сам процесс отладки.

Debugging PHP on Windows with XDebug and VIM

Отладка в VIM’е PHP скриптов с помощью XDebug под Windows

How to Debug PHP with Vim and XDebug on Linux

Отладка в VIM’е PHP скриптов с помощью XDebug под Linux

Примеры использования PHP CLI

157 PHP Комментариев нет

Для запуска скрипта

  • под Windows в переменную окружения PATH добавляем путь к php.exe и запускаем php script.php
  • под Linux в начале файла добавляем путь к интепретатору php #!/usr/bin/php -q и делаем скрипт исполняемым.

Вывод строки на консоль:

fwrite(STDOUT, "Hello world");

Считывание из стандартного ввода:

$val = fgets(STDIN);

Обработка переданных аргументов:


foreach ($argv as $theArg) {
print "$theArg\n";
}

Полезные ссылки:

Matt Zandstra - PHP Objects, Patterns, and Practice

186 Чтиво Комментариев нет

Название: PHP Objects, Patterns, and Practice, Second Edition
Автор: Matt Zandstra
Дата издание: 2008
Страниц: 514

Содержание:

PART 1 Introduction

  • CHAPTER 1 PHP: Design and Management

PART 2 Objects

  • CHAPTER 2 PHP and Objects
  • CHAPTER 3 Object Basics
  • CHAPTER 4 Advanced Features
  • CHAPTER 5 Object Tools
  • CHAPTER 6 Objects and Design

PART 3 Patterns

  • CHAPTER 7 What Are Design Patterns? Why Use Them?
  • CHAPTER 8 Some Pattern Principles
  • CHAPTER 9 Generating Objects
  • CHAPTER 10 Patterns for Flexible Object Programming
  • CHAPTER 11 Performing and Representing Tasks
  • CHAPTER 12 Enterprise Patterns
  • CHAPTER 13 Database Patterns

PART 4 Practice

  • CHAPTER 14 Good (and Bad) Practice
  • CHAPTER 15 An Introduction to PEAR
  • CHAPTER 16 Generating Documentation with phpDocumentor
  • CHAPTER 17 Version Control with CVS
  • CHAPTER 18 Testing with PHPUnit
  • CHAPTER 19 Automated Build with Phing

PART 5 Conclusion

  • CHAPTER 20 Objects, Patterns, Practice

PART 6 Appendixes

  • APPENDIX A Bibliography
  • APPENDIX B A Simple Parser

IE6 не устанавливает cookies

175 PHP Комментариев нет

Обнаружил, что IE6 не принимает пароль для WordPress страницы, установленный в ‘Защитить страницу паролем‘. После ввода пароля, IE6 редиректится на ту же страницу, но поле для ввода пароля отображается по-прежнему. В следующей версии Internet Explorer 7 - все ок, пароль принимается и отображается содержимое защищенной страницы, в остальных браузерах тоже все работает. Полез смотреть в wp-pass.php, куда WordPress редиректит после ввода пароля – все варианты, которые я пробовал - тсчетны ослик 6 уперся и не воспринимал ни один из них.

Дальше начал смотреть в сторону PHP, setcookie, $_COOKIE. Оказалось, что ослик может не устанавливать кукисы (а соответственно и сессии) по одной из следующих причин:

  1. Особенная реализация (читай: через одно место :) ) P3P в IE 6, лечиться отправкой специального HTTP заголовка :
    
    header('P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
    

    Этот способ может и не сработать.

  2. В имени устанавливаемой кукис переменной присутсвует  _ (знак подчеркивания), способ лечения - удаляем знак подчеркивания в имени переменной.
  3. Не правильное вычисление даты окончания (timeout) cookies. Если сервер находится в другом часовом поясе, по сравнению с клиентом, то в IE6, после вычисления разницы времени, получается просроченная дата кукиса . В правильных браузерах время перед расчетом приводиться к одной отправной точке - UTC. Способ лечения - коррекция времени на клиенте по NTP.

Эти способы мало пригодны, если сайт отлаживается на standalone IE (параллельно установлено несколько IE).

Источник: Session cookies rejected by Internet Explorer

Полезная информация о CodeIgniter

367 PHP Комментариев нет

Решил ознакомиться с php-framework’ом CodeIgniter и собрать источники с каких я черпал инфу.

Для быстрого ознакомления рекомендую посмотреть на туториал по пошаговому созданию простого блога. У меня после ознакомления сложилось мнение о CodeIgniter как о легком (в плане минимального количества чужеродного кода), простом (ООП рулит :) ) и легко расширяемым фреймворке (за счет модулей, библиотек, хелперов и плагинов).

Далее »

CodeIgniter for Rapid PHP Application Development

59 Чтиво Комментариев нет

Название: CodeIgniter for Rapid PHP Application Development
Автор: David Upton
Дата издание: 2007
Страниц: 257

Содержание:

  • Chapter 1: Introduction to CodeIgniter
  • Chapter 2: Two Minutes’ Work: Setting up a CodeIgniter Site
  • Chapter 3: Navigating Your Site
  • Chapter 4: Using CI to Simplify Databases
  • Chapter 5: Simplifying HTML Pages and Forms
  • Chapter 6: Simplifying Sessions and Security
  • Chapter 7: CodeIgniter and Objects
  • Chapter 8: Using CI to Test Code
  • Chapter 9: Using CI to Communicate
  • Chapter 10: How CI Helps to Provide Dynamic Information
  • Chapter 11: Using CI to Handle Files and Images
  • Chapter 12: Production Versions, Updates, and Big Decisions
  • Chapter 13: Instant CRUD—or Putting it All Together
  • Chapter 14: The Verdict on CI
  • Chapter 15: Resources and Extensions
 
Powered by WordPress