Украинский хостинг : Хостинг с PHP5
[http://freehost.com.ua] - web-мастерская - партнерская программа - журнал по раскрутке сайта О компании Х остинг Д омены Р есселерам F AQ С ервисы З аказ К онтакты Регистрация www. biz com edu info net org ua com.ua co.ua biz.ua in.ua edu.ua gov.ua net.ua org.ua ck.ua cn.ua crimea.ua cv.ua dn.ua dp.ua if.ua kh.ua kharkov.ua kiev.ua km.ua kr.ua ks.ua lg.ua lutsk.ua lviv.ua mk.ua od.ua pl.ua rovno.ua rv.ua sumy.ua te.ua vn.ua zp.ua uz.ua zt.ua Помощь : FAQ : Форум : Информационный бюллетень : Cсылки : HelpDesk Общие вопроосы : Управление хостингом : Почта : Домены Хостинг с 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/ Главная | О компании | Хостинг | Домены | Ресселерам | Заказ | Контакты | FAQ | Сервисы | WEB-мастерская | Партнерская программа | Магазин готовых сайтов | Зона управления | Карта сайта | Copyright © 2003, FREEhost.com.ua - FREEhost.com.ua