» Главная
eXcode.ru » Статьи » PHP » Общие
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 10





Что нового в PHP4?




Так долго ожидаемая версия PHP4 вышла в конце мая 2000 года. PHP4 успешно прошло стадии Beta-test (бета тестирование) и Release Candidate (кандидат на релиз). Сейчас доступна окончательная версия PHP4.0.3p1.

С выходом каждой новой версии программного продукта, постоянно возникают одни и те же вопросы: "Что нового в этой версии ?" и "Какие из нововведений действительно полезны ?". Вполне законные вопросы. Стоит ли переходить на новую версию? Ведь это может вызвать массу различных проблем.

В статье будут бегло рассмотрены новые возможности PHP4, что поможет оценить по достоинству гигантскую работу, проделанную Zeev Suraski, Andi Gutmans и другими.

В чем отличие между PHP3 и PHP4?

PHP4 - это полностью переписанный PHP3, включая движок. Но почему авторы решили все полностью переписать?

Способ, с помощью которого работает скриптовый движок PHP3 не приспособлен к выполнению больших, широко - масштабируемых приложений, таких как Phorum или KeyStone. В действительности, движок считывает инструкции скрипта строчку за строчкой, и также построчно потом выполняет, что позволяет PHP3 достичь высокой производительности на достаточно коротких и простых скриптах, однако производительность сильно падает на больших приложениях. Важно осознать, что PHP3 не было приспособлено для выполнения таких приложений.

Поэтому создатели PHP3 решили разработать скриптовый движок, который будет считывать целиком все PHP коды и "компилировать" их перед выполнением. Движок назвали Zend. При переходе с PHP2 на PHP3 возникло много несовместимости. Такие различия между PHP3 и PHP4 постарались минимизировать. Авторам это удалось. Несовместимости очень мало.

Хотя Zend и является составной частью PHP4, на самом деле, это скриптовый/рантайм (scripting/runtime) движок, который не привязан к языку PHP. Таким образом, Zend можно использовать совместно с MySQL, как основу для разработки хранимых процедур, написанных на специфичном для этой базы данных языке.

Не вдаваясь в детали внутренней реализации, можно выделить несколько особенностей совместно работающих Zend и PHP4.

Новая архитектура PHP4 позволила разработчикам добавить в ядро языка абстрактный слой относительно веб - сервера. Начиная со времен PHP3 и по сегодняшний день, мы были вынуждены выбирать, использовать PHP, как модуль веб - сервера Apache, либо как CGI во всех других HTTP серверах. С появлением PHP4, стала возможна более тесная интеграция с веб серверами, отличными от Apache. В частности с веб - сервером IIS корпорации Microsoft. PHP4 теперь работает, как ISAPI фильтр для IIS. Для этого некоторые части кода PHP4 были адаптированы для работы в мультитредовом (multi-thread) окружении. PHP4 теперь тредо-безопасный (thread-safe).

Существует много новых особенностей, касающихся внутренней реализации PHP4, однако они напрямую никак не касаются PHP программиста. Тем не менее, стоит остановиться на самых важных из них: механизм выделения памяти, механизм подсчета ссылок. Другими словами, эти механизмы высвобождают ресурсы, которые больше не используются. Таким образом, улучшается использование памяти, особенно для объектов и таблиц. Чем больше информации содержат переменные, тем больше памяти остается свободно.

С точки зрения разработчика.

Каковы главные различия между PHP3 и PHP4 с точки зрения пользователя (PHP4 дизайнер/разработчик )?

Сессии

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

При использовании PHP3, было необходимо выстраивать систему сессий вручную, с помощью механизма cookie, передачу параметров или используя PHPLib. PHPLib до сих пор может использоваться и с PHP4, потому что предоставляет и другие возможности, кроме управления сессиями.

Целая группа директив конфигурации в php.ini снимает с программиста бремя заботы о контекстах сессий и пользователей. Переменные сессий могут храниться просто в ASCII файле либо в реляционной базе данных. Все эти возможности задокументированы в официальном описании PHP4

Буферирование вывода

В PHP3, все, что было сгенерировано с помощью функций echo() и print(), сразу отсылалось непосредственно серверу. В PHP4, промежуточный запоминающий слой может задержать посылку веб серверу потокa выходных данных. Для этих целей, существует ряд еще недокументированных функций:

* ob_start(): активирует буферизацию вывода
* ob_end_flush(): отсылает содержимое выходного буфера и деактивирует буферизацию
* ob_end_clean(): освобождает содержимое выходного буфера и деактивирует буферизацию
* ob_get_contents(): возвращает содержимое выходного буфера

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

Оператор вычисления идентичности

Этот оператор позволяет проверить равенство значений, а также совпадение типов двух различных переменных или выражений. С помощью неявного преобразования типов в PHP, число 5 может сравниваться со строкой "5". Два этих значения считаются равными при обычном сравнении. Новый же оператор, возвращает TRUE (истина) только в том случае, если идентичны значения и типы переменных. Он представляется тремя знаками === (===). В следующем примере четыре первых выражений используют обычный оператор сравнения и все они возвращают TRUE. Последующие четыре используют оператор вычисления идентичности, и только пятое и восьмое выражения возвращают TRUE.

$valint1 = 1;
$valint2 = 2;
$valint3 = 3;
$valfloat1 = 1.0;
$valfloat2 = 2.0;
$valfloat3 = 3.0;
$valstr3 = ′3′;
$res = (($valint1+$valint2)==$valint3) ? (′TRUE′):(′FALSE′) ;
print " TEST 1 : " . $res . "
";

$res = ($valint3==$valfloat3) ? (′TRUE′) : (′FALSE′) ; print " TEST 2 : " .
$res . "
";

$res = ($valstr3==$valint3) ? (′TRUE′) : (′FALSE′) ; print " TEST 3 : " . $res
. "
";

$res = (($valfloat1+$valfloat2)==$valfloat3) ? (′TRUE′) : (′FALSE′) ; print "
TEST 4 : " . $res . "

";

"; $res = (($valint1+$valint2)===$valint3) ? (′TRUE′) : (′FALSE′) ;
print " TEST 5 : " . $res . "
";

$res = ($valint3===$valfloat3) ? (′TRUE′) : (′FALSE′) ; print " TEST 6 : " .
$res . "
";

$res = ($valstr3===$valint3) ? (′TRUE′) : (′FALSE′) ; print " TEST 7 : " .
$res . "
";

$res = (($valfloat1+$valfloat2)===$valfloat3) ? (′TRUE′) : (′FALSE′) ; print "
TEST 8 : " . $res . "
";


Поддержка COM в Windows

На Windows платформах, PHP4 обеспечивает поддержку COM компонентов. Это означает, что практически любые Windows приложения могут управляться из PHP4. COM модель, которая лежит в основе Microsoft архитектуры такова, что любое Windows приложение может предоставить такое количество компонентов и открытых методов, сколько существует точек входа для управления приложением из других приложений.

Возможно, несколько строк кода будут более полезны, нежели долгие объяснения. Рассмотрим следующий пример. Данный код запускает Word, создает в нем новый документ, добавляет текст в этот документ, затем сохраняет все на диск и выходит.

Version}
";
$word->Visible=1;
$word->Documents->Add(); $word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("test_com_php.doc");
$word->Quit();
?>

Отображение фрагментов HTML кода

Еще одно нововведение в PHP4. Это новый синтаксис, повторяющий "here printing" из Perl. Теперь есть возможность отображать целые фрагменты HTML кода, обрамляя их инструкциями echo или print и оконечной меткой. В отличии от Perl, в PHP4 такой оператор обозначается не двойным знаком меньше (<<), а тройным (<<<). В качестве примера:


/n";
print <<< mylabel
<h4>PHP′s New Features</h4> <ul> <li>ISAPI support <li>COM support on Win32
<li>Java and servlets support </ul>
<p>$valstr
Tested on PHP version $version</p>
mylabel;
echo "<hr>
/n";
?>

Поддержка Java

Поддержка Java является, без сомнения, одним из тех новых свойств, которые открывают возможность для PHP4 использовать уже существующие системы и приложения. С помощью PHP4, можно использовать Java сервлеты (servlet) и классы.

Поддержка Java не является встроенной возможностью в PHP4; необходимо добавить и сконфигурировать дополнительное расширение. Чтобы иметь возможность использовать поддержку Java под Linux, надо перекомпилировать PHP4 с определенными опциями. Также существует такое расширение для Windows в виде уже откомпилированного модуля. Эти расширения можно найти на официальном сайте PHP. При этом надо выбрать, какую версию Java вы будете использовать (JDK 1.1.8, 1.2, 1.3). В последующих примерах используется JDK 1.1.8.

В файле php.ini вы должны добавить две строчки в новый раздел ?Java?:

[java] java.class.path="c:jdk1.1.8libclasses.zip; C:Program FilesApachecgi-binphp_java.jar; C:Program FilesApachehtdocsphpjava" extension=php_java.dll

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

Затем, поместите Java классы, которые вы собираетесь использовать, в одну из директорий указанных директивой java.class.path. К примеру, в c:Program FilesApachehtdocsphpjava.

Представьте, что у вас есть Java класс, называющийся Point и описывающий точку: ее координаты, различные необходимые методы (конструктор, традиционные методы установки и получения свойств, метод toString).

public class Point {

// attributes
public int abscissa;
public int ordinate;

public int type;

// default constructor
public Point() {
љsetCoordinates(0,0);
this.type = 1 ;
}
// constructor
public Point(int x,int y) {
setCoordinates(x,y);
this.type = 1 ;
}
// Overloaded object method
public toString String(){
// Call the display method
return display();
}
// Point class methods
public void setType(int mytype){
// Call the display method
this.type = mytype;
}
public int getAbscissa() { return abscissa; }
public int getOrdinate() { return ordinate; }
public void setCoordinates(int abscissa, int ordinate) { this.abscissa =
abscissa;
this.ordinate = ordinate;
}
public sayHello String() {
return "I am a point :-)";
}
public display String(){
return "("+abscissa+","+ordinate+" Type "+type+")";
}
}

Итак, ели все сконфигурировано правильно и файл Point.class находится в нужном месте, мы можем выполнить следующий PHP код:

Point created at (0,0) ..."; echo $myPoint->setCoordinates(15,15); echo "
Point moved to (15,15)"; echo "
".$myPoint->display(); echo "
".$myPoint->sayHello(); echo "<hr> "; ?>

В результате вы получите:

Point created at (0,0) ... Point moved to (15,15) (15,15 Type 1) I am a Point :-)

Выводы

Четвертая версия PHP ? это больше, чем просто модернизация. Это новая реализация, которая повлекла за собой полное переписывание кодов разработчиками: Zeev Suraski, Andi Gutmans и др. Теперь существует бесплатное качественное решение, которое может применяться в крупных профессиональных приложениях.


Christophe Lauer, Head of R&D (clauer@techmetrix.net) Оригинал http://idm.internet.com/articles/200008/php_08_30_00a.html
Любая перепечатка и публикация информации на других ресурсах
только по согласованию с Club of the developers PHP
Статья предоставлена Клубом разработчиков PHP
К началу статьи





Добавил: LedWormДата публикации: 2005-05-29 10:52:46
Рейтинг статьи:3.00 [Голосов 5]Кол-во просмотров: 13289

Комментарии читателей

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

2018-11-20 06:40:36
Frankabink
Наш интернет-магазин пневматического вооружения и продукции для активного отдыха предлагает большой выбор пневматики (воздушек) и сопутствующей продукции к ним. Мы продаём товары для активного досуга - для охоты, рыбалки, путешествий, спортивной стрельбы и т.п. [url=http://gun54.ru/product_5229.html]gamo black bear[/url]. Мы также предлагаем другие товары, такие как шарики BB, свинцовые пули, баллончики СО2, чистящие средства для оружия. В нашем онлайн-магазине громадный выбор арбалетов и луков, оптики, биноклей, туристических и походных ножей.

В богатом ассортименте также представлена одежда для охоты, рыбалки и туризма, включающая костюмы, термобелье, обувь, перчатки, свитера. [url=http://gun54.ru/category_445/]воздушка купить в новосибирске[/url]. Для рыбаков мы можем предложить очень популярные сейчас высокочувствительные эхолоты.

Ресурс GUN54.RU есть также справочно-информационным ресурсом города Новосибирск. У нас вы сможете узнать всю необходимую информацию о каждом из изделий, которые у нас продаются. [url=http://gun54.ru/product_4703.html]винтовка hatsan 125 в кызыле[/url]. Сделать заказ можно на страницах нашего сайта или непосредственно по телефону, указанному в разделе Контакты. Доставка товаров нами осуществляется по всей РФ с помощью почтовых и транспортных компаний.

2018-11-19 12:44:10
Frankabink
Наш онлайн-магазин пневматического вооружения и продукции для активного досуга предлагает громадный ассортимент пневматических пистолетов и пневматических винтовок (воздушек) и сопутствующих товаров к ним. Мы продаём товары для активного отдыха - для охоты, рыбалки, путешествий, спортивной стрельбы и т.п. [url=http://gun54.ru/product_4737.html]пневматическая винтовка hatsan striker edge[/url]. Мы также реализуем сопутствующие товары, такие как шарики BB, свинцовые пули, баллончики СО2, средства по уходу за оружием. У нас в Интернет-магазине огромный ассортимент арбалетов и луков, оптики, биноклей, туристических и охотничьих ножей.

В широком ассортименте также имеется одежда для охотников, рыболовов и туристов, она включает костюмы, тёплое бельё, обувь, перчатки, свитера. [url=http://gun54.ru/category_450/category_603/zapchasti-k-vintovkam-gamo/]gytdvfnbrf yjdjcb bhcr[/url]. Для рыбаков мы предлагаем очень популярные сейчас качественные эхолоты.

Сайт GUN54.RU есть также справочно-информационным ресурсом города Новосибирск. Здесь вы сможете узнать всю детальную информацию о каждом из изделий, которые у нас продаются. [url=http://gun54.ru/category_451.html]пневматический пистолет цена в новосибирске[/url]. Заказать товар можно на страницах ресурса или непосредственно по телефону, который указан в разделе Контакты. Доставка товаров нами осуществляется по всей Российской Федерации посредством почтовых и транспортных предприятий.

2018-10-18 16:47:41
KisaBrisefed
Обратите внимание на качественный контент [b]порно видео[/b] из всего РУнета!
http://search.wi.gov/cpp/help/urlstatusgo.html?url=https://porno-tv.org/categories/jestkoe
http://candleslane.com/directory.php?showlink=https://porno365tube.com/categories/hudye/
http://candleslane.com/directory.php?showlink=https://porno365tube.com/categories/jopy/
http://candleslane.com/directory.php?showlink=https://porno365tube.com/categories/
http://candleslane.com/directory.php?showlink=https://porno365tube.com/categories/chulki/
http://candleslane.com/directory.php?showlink=https://porno365tube.com/categories/v-ofise/
https://trello.com/add-card?source=trello.com&mode=popup&url=https://porno-tv.org&name=&desc=https://porno-tv.org/categories/molodye

Лучшее [b]бесплатное порно онлайн в HD[/b] качестве!
https://trello.com/add-card?source=trello.com&mode=popup&url=https://porno-tv.org&name=&desc=https://porno-tv.org/categories/bryunetki
http://candleslane.com/directory.php?showlink=https://porno-tv.org/models
https://trello.com/add-card?source=trello.com&mode=popup&url=https://porno-tv.org&name=&desc=https://porno-tv.org/latest-updates
http://candleslane.com/directory.php?showlink=https://porno-tv.org/most-popular
http://candleslane.com/directory.php?showlink=https://porno365tube.com/categories/bolshie-chleny/
http://search.wi.gov/cpp/help/urlstatusgo.html?url=https://porno-tv.org/categories/masturbaciya
https://trello.com/add-card?source=trello.com&mode=popup&url=https://porno-tv.org&name=&desc=https://porno-tv.org/models

2018-10-16 20:45:27
spoinia
Смотрите порно онлайн на [b]Porn3g.com[/b]. На данном сайте вы сможете просматривать [url=https://porn3g.com/categories/bdsm]РїРѕСЂРЅРѕ онлайн Р±РґСЃРј[/url] и без регистрации. Разное качество сделает видео доступными пользователям с любой скоростью интернета.
Разнообразие категорий не даст вам соскучиться на нашем сайте. Порно на любой вкус. Самые [b]горячие сучки[/b] раскрывают все свои дырочки и не стесняются жесткой ебли на камеру.
Они готовы загонять в анал члены любой толщины лишь бы пользователи порно сайтов проголосовали за видео с их участием и вывели ролики в разделы «Топы» и «Популярное».
[b]Похотливые сучки[/b] каждый день дерутся за место под солнцем потому что таких как они сотни пытаются пробиться в порно индустрии. Это дает нашему зрителю насладиться самой жесткой подборкой порнухи.

2018-10-07 11:29:38
Kara13ael
[URL=http://piccash.net/51575/871450/][IMG]http://piccash.net/allimage/2018/10-7/img_thumb/871450-thumb.jpeg[/IMG][/URL]
В годах русская мама в сексапильных чулках [url=https://incest-home-video.ru/mamy]порно жестокие мамки и сына бесплатно[/url]
приехала с работы необычайно заведенной. Ее шеф щипнул ее за попу и у данной зрелой российской мадемуазели запылали старинные, давно позабытые страсти. Чтоб утихомирить зуд в своей мохнатой пизде, зрелая, похотливая мама пожелала извратить своего сынка на кровосмешание [url=https://incest-home-video.ru/mamy/28396-zabotlivaya-mama-drochit-synu-huy-poka-muzh-spit-ryadom.html]мама помогает дрочит хуй сыну[/url]
. Стянув с парня штаны, маманя сварганила классный минет ему прямо в коридоре, а потом расставила собственные ноги в чулочках, пустив возбудившийся пенис сынишки в собственную увлажненную, обросшую писю...

Глядите самое интересное порево инцест тут - [url=https://incest-home-video.ru/mamy/566-hot-milf-takes-a-young-stud-in-her-mouth-until-he-explodes-down-her-throat.html]сын хочет мама против порно[/url]

[URL=http://piccash.net/51575/871451/][IMG]http://piccash.net/allimage/2018/10-7/img_thumb/871451-thumb.jpeg[/IMG][/URL]

2018-10-02 06:46:28
Kara13ezw
[URL=http://www.image2you.ru/72207/1753304/][IMG]http://www.image2you.ru/allimages/2__img_72207_18ab6_1538380227.jpg[/IMG][/URL]
Желаешь найти любовника /любовницу/ на стороне, прячась от супруги или же подружки - то вам надо сюда - [url=http://meet-sex-lady.com/?u=m8vk605&o=ffgb7v1904]рунетки секс русских парочек онлайн чат секс знакомства харьков[/url]
. Cамые блудливые красотки твоего города ожидают вас прямо сейчас. Интимные отношения без претензий, без лишних ухаживаний и сексуальных прелюдий...Просто тупо жесткий секс и больше ничего... Заходи, регистрируйся тут - [url=http://meet-sex-lady.com/?u=m8vk605&o=ffgb7v390]секс знакомства онлайн телефон секс знакомства в горловке[/url]
и кто знает, возможно тебя ждет твоя соседка по лестничной клетке, одноклассница или даже твоя девушка, которая ведет собственную двойную жизнь о которой ты даже не догадываешся...

2018-07-09 18:59:02
Danielslivy
Наш магазин пневматического оружия и товаров для активного отдыха предлагает широкий выбор пневматических пистолетов и пневматических винтовок (воздушек) и сопутствующей продукции к ним. Мы предлагаем товары для активного отдыха - для охоты, рыбалки, туризма, спортивной стрельбы по мишеням. <a href=http://gun54.ru/category_513.html>охотничья одежда купить</a>. Мы также предлагаем сопутствующие товары, такие как шарики BB, свинцовые пули, баллончики СО2, чистящие средства для оружия. В нашем Интернет-магазине богатый выбор арбалетов и луков, оптических прицелов, биноклей, туристических и охотничьих ножей.

В широком ассортименте также имеется одежда для охоты, рыбалки и туризма, включающая костюмы, тёплое бельё, обувь, перчатки, свитера. <a href=http://gun54.ru/category_450.html>куплю воздушку</a>. Для любителей рыбалки мы предлагаем очень популярные сегодня высокочувствительные эхолоты.

Сайт GUN54.RU есть также справочно-информационным порталом г. Новосибирск. Здесь вы сможете узнать всю необходимую информацию о каждом из изделий, которые у нас продаются. <a href=http://gun54.ru/product_3388.html>gamo pt 8</a>. Заказать товар можно на страницах нашего сайта или непосредственно по телефону, который указан в разделе Контакты. Доставка заказа нами осуществляется по всей РФ посредством почтовых и транспортных компаний.

2018-07-07 04:50:00
LesterEnund
Магазин здоровья - натуральные алтайские и крымские травы, природные средства для красоты и здоровья.
<a href=http://happyshop232.ru/catalog/ayurveda/sirop-ot-kashlya-doloron-100-ml/>долорон сироп от кашля 100 мл</a>

2018-07-03 19:37:21
MarinaKl

<a href=https://liderpiara.biz/ref/10262>Друзья, надо раскрутить гркппу Вк? сделайте это легко -автоматически</a>

2018-05-23 23:12:59
DorisDup
Как получить скидки?


[url=http://promokody-skidka.ru/]бонприкс интернет магазин одежды промокод[/url]
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Как вы относитесь к рекламе на сайтах.
Отрицательно, терпеть ее не могу!
46% (95)
С пониманием
25% (51)
Пусть будет, если только по делу
15% (32)
Она мне безразлична!
11% (23)
Я ее обожаю!
3% (6)

Проголосовало: 208
- Друг, дай взаймы сколько сможешь.
- А нафига тебе?
- Окно на pаботе pазбил.
- И что?
- Заставили возместить стоимость...
- Сколько?
- Штука баксов.
- ?!! И что же это за окно такое?
- Да Девяносто Восьмое, на экране было. Я, блин, не выдержал и вместе с монитором и компом впридачу разбил...
Рейтинг: 4.8/10 (4)
Посмотреть все анекдоты