Архив рубрики «PHP»

Внутреннее устройство переменных PHP 28.12.2010 PHP

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

Древовидная структура Zend Config 22.11.2010 PHP, Zend

Иранский программист Muhammad Hussein Fattahizadeh предложил довольно интересный способ древовидного хранения настроек приложения. Я приведу вольный перевод описания опубликованного в его блоге

Лучшая часть моего любимого php фреймворка zend framework — это Zend_Config. С помощью Zend_Config вы можете дать своему вебприложение более тонкую настройкой, что бы каждый смог настроить его по своему вкусу.

Вы можете больше прочитать про Zend_Config на странице официального мануала.

Большинство вебприложений имеют много конфигурационных файлов, с разными форматами, такими как INI, XML или PHP. Также некоторые из этих файлов могут отвечать лишь за часть вашего приложения, и находится в специальной директории. читать дальше»

Паттерн проектирования Adapter (Адаптер) на PHP 03.10.2010 PHP, Паттерны проектирования


Перед прочтением ознакомьтесь с введением в паттерны проектирования на PHP, в котором описаны принятые соглашения и понятия. Данная статья дополняется с некоторой периодичностью, так что если вы ее читали ранее, не факт что данные не изменились.

Adapter (Адаптер) относиться к классу структурных паттернов. Он используется для преобразования одного интерфейса в другой, необходимый клиенту. Адаптер обеспечивает совместимость несовместимых интерфейсов, реализуя прослойку. читать дальше»

Учим IDE автодополнению классов MongoDB 26.09.2010 PHP

Для того чтобы ваш любимый IDE стал дополнять ваш код, а также делать подсказки по типам MongoDB, нужно всего лишь поместить в папку с проектом вот этот файл. Не включайте его в проект, через include или required, а просто положите в папку с проектом, в любое место.

Вот так это выглядит в NetBeans

Введение в MongoDB 26.09.2010 PHP

Не реляционные базы данных все больше набирают популярность, и все чаще их можно встретить в проектах с высокой нагрузкой, как решения для увеличение производительности. В этой статье я попытаюсь раскрыть основы работы с MongoDB через расширение pear в php. О том как установить эту базу данных и настроить к ней доступ, вы можете прочитать здесь.

Установление соединения

После установки расширения pear, в своем проекте мы можете использовать ряд новых классов, таких как Mongo, MongoDB, MongoCollection, MongoCursor и прочие читать дальше»

Установка MongoDB на Ubuntu 10.04 и связывание с PHP 23.09.2010 PHP

MongoDB — это документная база данных, написанная на c++. Для обмена данными с клиентом использует JSON, а хранит в двоичном формате BSON. По методу обмена данными эта база данных относится к NoSQL, т.е. использует не классический метод для взаимодействия реляционных баз данных и клиента (без SQL).

Для установки в Ubuntu достаточно прописать в консоле:

  1. $ sudo apt-get install mongo

По окончании установки, для проверки работоспособности, выполните в консоле:

  1. $ mongo

Вы должны увидеть примерно следующее приветствие:

  1. MongoDB shell version: 1.2.2
  2. type "exit" to exit
  3. type "help" for help

читать дальше»

Генератор форм для Zend Framework 18.09.2010 PHP, Zend

Хочу предложить вашему вниманию небольшой скрипт, написанный мной для облегчения верстки форм для Zend_Form. Он выполняет довольно рутинную операцию по написанию однотипных конструкций: добавление элементов в форму и установления на них декораторов. Все что от вас потребуется, так это вставить вашу html верстку, а на выходе получить php код. 

На данный момент нельзя назвать его совершенным. Более того, весьма вероятно, что на выходе вы получите ошибку или неверно работающий код. Если произошла ошибка, мне будет доставлен баг репорт, который я постараюсь рассмотреть в кратчайшие сроки, и решить проблему. Если же сгенерированный код выполняется неверно, не поленитесь и пришлите мне баг репорт

Вообщем, прошу любить и жаловать: Генератор форм для Zend Framework

Паттерн проектирования Builder (Строитель) на PHP 29.08.2010 PHP, Паттерны проектирования

Перед прочтением ознакомьтесь с введением в паттерны проектирования на PHP, в котором описаны принятые соглашения и понятия. Данная статья дополняется с некоторой периодичностью, так что если вы ее читали ранее, не факт что данные не изменились.

Builder (Строитель) относится к классу порождающих паттернов. Он используется для отделения процесса конструирования сложного объекта от его представления, так что в результате одного и того же конструирования могут получаться различные объекты. читать дальше»

Введение в Traits 27.08.2010 PHP

Traits — это механизм повторного использования кода. Был разработан как альтернатива подмешиванию (mixin) и, в некотором роде, множественному наследованию, так как позволяет разработчику более свободно повторно использовать методы объявленные в иной иерархии классов. Семантика комбинирования traits и классов специально разработана для избежания типичных проблем связанных с множественным наследованием и технологией mixin. На момент написания статьи, данная технология находиться в trunk и будет включена в новые сборки dev версии PHP 6 (также возможно и в 5.3.x)

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

  1.  
  2. trait Speaker {
  3.     public function sayHello() {
  4.         echo 'Hello World!';
  5.     }
  6. }
  7.  
  8. class Base {
  9.     use Speaker;
  10. }
  11.  
  12. $test = new Base();
  13. $test -> sayHello();
  14.  

читать дальше»

Паттерн проектирования Prototype (Прототип) на PHP 26.08.2010 PHP, Паттерны проектирования

Перед прочтением ознакомьтесь с введением в паттерны проектирования на PHP, в котором описаны принятые соглашения и понятия. Данная статья дополняется с некоторой периодичностью, так что если вы ее читали ранее, не факт что данные не изменились.

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