Подготовка к Zend сертификации : Функции

  • PHP
  • 2 года назад
  • 2/3
  • Функция может содержать в себе любой корректный PHP код, включая другие функции и классы.
  • Функция не обязательно должна быть определена до вызова, за исключением её использования в условных операторах.
  • Объявленную функцию нельзя переопределить.
  • В PHP все функции и классы имеют глобальную область видимости - их допускается вызывать даже за пределами функции в случае, когда они были заданы внутри этой функции и наоборот.
  • имена функций не чувствительны к регистру
  • типы: встроенные, определенные пользователем, сторонние (например из расширений).
  • global $id; или $GLOBALS["id"] используются для доступа к глобальным переменным (по сути global $id это ссылка на $var = & $GLOBALS["id"]).
  • В PHP5 появилась возможность задать значение параметра функции по-умолчанию даже для параметров, передаваемых по ссылке (если параметр не был передан, то создается новая переменная).
  • В PHP5 объекты всегда передаются по ссылке, если только они не были клонированы.
  • допускается рекурсивный вызов функций (то есть function recursion($a) { if($a<10){recursion($a+1);} }), следите за тем, чтобы выполнение функций было ограниченно.
  • чтобы проверить существует ли функции в контексте используйте function_exists($function_name).
  • $arr = get_defined_functions() - даст вам полный список всех функций, $arr['user'] - функции заданные пользователем.
Читать далее...

Подготовка к Zend сертификации : Основы PHP

  • PHP
  • 2 года назад
  • 1/3

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

<?php
... code
?>

Тем не менее в начале страницы может присутствовать только один открывающий тег <?php. Короткие теги возможно отключить (как правило из-за совместимости с XML) установив директиву short_open_tag в файле php.ini:

Читать далее...

Простая балансировка нагрузки для MySQL и PHP с помощью библиотеки mysqlnd

  • PHP
  • 2 года назад

MySQL всегда занимал первое место в качестве СУБД для работы с PHP. Так было практически с создания языка. Конечно сейчас, применяются и PostgreSQL, SQL Server или Oracle, но для работы в web зачастую используется MySQL.

Выбор пал на MySQL потому, что на запуск решения не приходилось тратить много времени. libmysqlclient распространялся вместе с PHP до тех пор пока не был лицензирован под GPL, после чего эта библиотека была исключена из состава PHP.

Читать далее...

Шаблоны проектирования в PHP : Цепочка обязанностей

  • PHP
  • 2 года назад
  • 5/4
  • Паттерн Chain of Responsibility (Цепочка обязянностей) позволяет избежать жесткой зависимости отправителя запроса от его получателя (т.е. обеспечивается слабая связанность компонентов системы), при этом запрос может быть обработан несколькими объектами.
  • Объекты-получатели связываются в цепочку. Запрос передается по этой цепочке, пока не будет обработан.
  • Вводит конвейерную обработку для запроса с множеством возможных обработчиков.
Читать далее...

Symfony 2 Joboard : Отправка писем через Mailer

Symfony по-умолчанию содержит в себе один из лучших решений в PHP для организации рассылки - Swift Mailer. Конечно же библиотека полностью интегрирована с Symfony и включает в себя некоторые дополнительные функции. Давайте начнем с отправки простого письма с токеном, в котором партнеру сообщается, что его аккаунт был активирован. Но сначала надо настроить несколько параметров в файле parameters.yml:

Читать далее...

Symfony 2 Joboard : API для партнёров

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

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

Читать далее...

Symfony 2 Joboard : RSS

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

При помощи шаблонов мы можем показать содержание страницы в любом формате. Хотя чаще всего они используются для генерации HTML, мы вполне можем применять шаблоны чтобы получить JavaScript, CSS, XML или любой другой формат.

Читать далее...

Symfony 2 Joboard : Безопасность

Безопасность - это двухэтапный процесс, целью которого является запретить или разрешить доступ к ресурсу для определённых групп пользователей. Первый этап - аутентификация - система идентифицирует пользователя, исходя из предоставленных им данных. На втором этапе система переходит к авторизации и определяет, имеет ли пользователь доступ к определенным данным.

Настройки системы безопасности хранятся в файле app/config/security.yml. Изменим этот файл:

Читать далее...