This version of the page http://freehost.com.ua/faq/php5/about/ (0.0.0.0) stored by archive.org.ua. It represents a snapshot of the page as of 2008-08-07. The original page over time could change.
Украинский хостинг : Хостинг с PHP5

Русский

Українська
Вход для клиентов Панель управления пользователя
О компании Хостинг Домены Реселлерам FAQ Сервисы Заказ Партнерская программа Сервера Контакты
region.ua/org.ua - 5 у.е.
com.ua/net.ua - 9 y.e.
.com .com.ua .info
другие доменные зоны .net .kiev.ua .biz

FAQ

  • Техническая документация
  • FAQ
  • Форум
  • Информационный бюллетень

Акции

28.07.2008Имя для офисного любимца!

В офисе компании FREEhost.com.ua появился фирменный любимец – котенок. К сожалению пока у него нет имени.

Подробнее

Хостинг с PHP5

Мы гордимся тем что стали одной из первых компаний в Украине которые начали предоставлять хостинг с поддержкой PHP5, и сохранили PHP4 для пользователей, скрипты которых не полностью совместимы с новой версией. Для того чтоб избежать конфликта версий для хостинга с php5 мы запустили отдельную версию APACHE. Ниже мы привели краткий список улучшений и нововведений в PHP5

Сравнительная характеристика производительнсоти PHP5 и PHP4:

Новые уровни доступа private и public

В PHP5 добавлены новые модификаторы уровня доступа для переменных классов. Как и во многих других языках программирования, они носят названия private, protected и public.

Private - самый ограниченничивающий модификатор. Private переменная класса может быть использованна только в классе, в котором объявленна. К ней невозможно обратиться из другого программного кода.

Protected - расширение области private, добавляющее к ней возможность обращаться к переменной из классов-потомков.

Public - расширяющий protected модификатор, задающий наиболее широкую область доступа. К возможности использовать переменную в классах-потомках, добавляется возможность обращаться к переменной непосредственно из другого кода. Строго говоря, public не является новой областью доступа. Ранее в PHP все переменные классов являлись public переменными.

Private переменные используются для алгоритмов, которые используются только в текущем классе и не могут быть переопределенны в классах-потомках. Protected может быть использован, когда организовывается семейство объектов, обладающих сходными алгоритмами и организованных в иерархию. Использование public переменных, обычно, не является хорошей практикой но иногда оправданно. Их можно использовать, если у класса много свойств, которые должны быть доступны всем алгоритмам, использующим этот класс.

Аналогично, private/protected/public мидификаторы применяются к методам класса. Методы, объявленные без модификатора, являются public методами.

Если метод или переменная переопределяются в классе-наследнике, то уровень доступа должен быть таким-же или выше. Например, protected метод в классе-потомке можно сделать public, но нельзя private.

Конструкторы

Основным недостатком структуры конструкторов в PHP4 является необходимость синхронизации имени конструктора и имени класса. Поскольку имя конструктора должно совпадать с именем класса, то, при изменении имени класса, приходится переименовывать и конструкторы. В случае, если класс имеет несколько наследников, приходится аккуратно изменять в классах наследниках наследуемый класс (extends) и вызов конструктора класса-предка (parent).

Введение в PHP5 конструктора для класса с общим именем __construct упрощает переименовывание классов во время их разработки. Если в классе есть и __construct и функция, имя которой совпадает с именем класса, то в качестве конструктора будет вызванно __construct. При перегрузке метода-конструтора вызов конструктора класса-предка осуществляется через parent::__construct().

Деструкторы

Деструкторы являются нововведением для PHP. Они очень полезны для совершения работы по освобождению ресурсов, таких как закрытие открытых файлов или соединения с базой данных. Для деструкторов определенно имя __destruct. Как и для конструкторов, если деструктор унаследован и не перегружен он вызовется. Если он перегружен, то вызовется только перегруженный конструктор. Для вызова деструктора
объекта-предка надо использовать parent::__destruct(). Деструктор вызывается без параметров.

Константы

В классах могут быть объявленны константы. Это является еще одним методом (вместе с final классами и методами) для повышения структурности и удобочитаемости кода.

Система перехвата исключений (exceptions)

Exceptions (исключения) - это неотъемлемая часть любого современного языка. Система перехвата исключений объединяет в себе оператор throw, стрктуру языка "try { .. } catch ()[ catch () ...]" и основной объект Exception. В отличии от Java exceptions, в PHP отсутствует завершающий блок finally.

Основное применение системы исключений состоит в использовании структуры try/catch для отделения основного кода программы и блоков обработки ошибок. Механизм exceptions позволяет также корректно обрабатывать исключения, возникшие не непосредственно в выполняемом коде, а в используемых функциях.

Использование объектов без ссылок на них

Очень серьезным неудобством в PHP4 было вызывание цепочки методов. В PHP4 невозможно создать объект без ссылки на него, поскольку объекты фактически являлись только синтаксичекой конструкцией и на уровне ядра были эквивалентны массивам. Это порождало, например, такие конструкции:

$page = &$this->getPage();
$page->registerControl($this);


Конечно, это не очень удобно. Созданная на уровне ядра PHP5, таблица ссылок на объекты делает необязательным существование ссылок на объект. Благодаря этому становится возможной следующая конструкция:

$this->getPage()->registerControl($this);


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

for($i = 0; $i < 100; $i++)
$myObject->getProperty('relatedObject')->getAncestor($i)->update();


Во время работы этого кода осуществляется создание двухсот объектов и трехсот вызов методов. Очень простым образом можно сократить до создания ста объектов и двухсот одного вызова методов:

$relatedObject = $myObject->getProperty('relatedObject');
for($i = 0; $i < 100; $i++)
$relatedObject->getAncestor($i)->update();


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

В следующих версиях PHP, скорее всего, можно ожидать расширения подобного подхода и к обычным массивам. Если они, конечно, еще останутся - объекты имеют тенденцию захватывать все больше и больше функциональности :-). Тогда, возможно, будет доступна следующая конструкция:

print ((new ServerEnvironment()).getServerVariables())['REQUEST_URI'].

Полный текст статьи Вы сможете прочесть п опдресу: http://www.opennet.ru/

Почему выбирают нас?

  • uptime серверов 99.99%
  • удобная панель управления
  • домен бесплатно
  • сервера в UA-IX
  • трафик неограничен
  • 3 дня тестового доступа
  • гарантия возврата средств 30 дней
  • скидка на рекламу
  • круглосуточная служба поддержки

Новости

29.07.2008API интерфейс регистрации доменных имен!

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

Подробнее

Экономьте на рекламе

Покупая хостинг - Вы экономите на рекламе! Скидка 10-20% от стоимости рекламы на meta.ua, BigMir, I.UA

новости маркетинга

Подпишитесь на ежемесячное издание статей по рекламе и разработке сайта.

поддержка

support@freehost.com.ua

Главная|О компании|Хостинг|Домены|Реселлерам|Заказ|Контакты|FAQ|Сервисы|Сервера
Партнерская программа|Зона управления|Карта сайта

© 2001-2008 FREEhost.com.ua - украинский хостинг. Все права защищены. Нарисовано в Art Depo