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



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





Что нового в 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]Кол-во просмотров: 12872

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

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

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


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

2018-04-15 22:49:47
CraigVet
п»їExpose Your Toes With Prettytoes- Make-up For Your Toes

Do you have unsightly scars or discoloration on your feet or ankles? This can be embarrassing, and with the weather warming up, you want nothing more than to slide on your sandals and let your feet breathe. With the creation of PrettyToes Fade-n-Cover, you can cover-up unsightly discolorations and scars. From peep-toe pumps to platform wedges to flip-flops and gladiator sandals, your feet get a lot of attention in the summer. PrettyToes is a foot concealer that not only covers, but helps fade scars and discoloration. It comes in six shades with a water-base that allows it to last for hours.

What is PrettyToes?

PrettyToes Fade-n-Cover was developed by Dr. Nathan Lucas, a Board Certified Podiatrist and Licensed Aesthetician. The purpose of creating this product was to help women rid themselves of the embarrassment as well as the social and psychological stigma they felt when having to expose their toes. The goal of PrettyToes is to ensure that women will no longer have to hide their toes or feel embarrassed to wear open toe shoes and sandals.

It not only covers unsightly blemishes, but fades unsightly scars and discolorations. It is water resistant and with continual use, fades minor imperfections on your toes. The benefit of PrettyToes is that it contains FDA approved lightening agents that have been shown to contain fade/lighting properties. This product is formulated for the foot and ankle and is not recommended for use on the face or other parts of the body.

So You Have Corns: Apply PrettyToes

A corn is a thickened growth of skin that forms on the toes when the bones push against shoes or other toes, creating friction against the skin. Hard corns typically develop on the top of the toe or on the side of the small toe, while soft corns are similar to open sores which develop between the toes. Corns are almost always caused from wearing restrictive shoes that place repeated pressure on the toes. But hammertoes and other toe deformities can be the source of their development as well. PrettyToes can help to cover your unsightly corns.

Available in six beautiful brown shades, PrettyToes range from the lightest brown to the deepest chocolate. Some find it helpful to blend shades to achieve a better match, while one shade will do for others. First, apply PrettyToes Fade-n-Cover to the entire toe/toes or the area you want to cover using the sponge applicator. The product may initially appear light, but, like all makeup, allow PrettyToes to react with your body chemistry before applying more of the product.

Next, blend the makeup into your toe or toes. Remove all clear lines of demarcation and blend until you are satisfied with the appearance. PrettyToes is water resistant, making it possible for you to go swimming without the makeup coming off. When you are ready to remove PrettyToes, use a good makeup remover.

PrettyToes is an amazing water-resistant concealer made especially for your toes and feet that will help you get your toes summer ready. Contact Dr. Nathan Lucas, your podiatrist in Memphis, TN, for further consultation and for more information on how PrettyToes can help you gain the confidence you need to show off your feet this summer.

Visit site: http://gameone.club/

cars for sale in bulawayo zim

2018-04-12 02:30:35
Mashiki
Добрый день. Привет
дамы и господа!

Недавно утроилась работать в интернет-Магазин. "Ателье Уюта"
Хотелось бы получить отзыв в личку. Желательно положительный )

[url=https://www.au59.ru]https://www.au59.ru[/url]

Вот, что у нас есть:

Купить шторы

<a href=https://www.au59.ru>https://www.au59.ru</a>
<a href=https://www.au59.ru>Шторы Пермь</a>


Нам будет приятно видеть у нас на вебресурсе
От всей души Вам всех благ!

[url=https://www.au59.ru/]гардины для штор купить[/url]
[url=https://www.au59.ru/]потолочные карнизы для штор[/url]
[url=https://www.au59.ru/]карниз двухрядный металлический для штор[/url]
[url=https://www.au59.ru/]крепления для рулонных штор купить отдельно[/url]
[url=https://www.au59.ru/]пошив римских штор[/url]

2018-03-30 12:57:28
kamagra online
kamagra oral jelly reviews
<a href="http://kamagradxt.com/">kamagra forum doctissimo</a>
kamagra 100mg soft tabs chewable tablets
[url=http://kamagradxt.com/]the sleep store kamagra[/url]
kamagra oral jelly for sale in usa illegally
http://kamagradxt.com/
kamagra oral jelly gГјnstig kaufen paypal

2018-03-28 11:38:39
KennethBok
Как часто Ваша партнёрша кричит в постели и рвёт Вам спину, изнемогая от оргазма?
Сайт: https://eroctive2.blogspot.ru/

2018-03-28 09:44:07
KennethBok
Как часто Ваша партнёрша кричит в постели и рвёт Вам спину, изнемогая от оргазма?
Сайт: https://eroctive2.blogspot.ru/

2018-03-28 06:41:45
KennethBok
Как часто Ваша партнёрша кричит в постели и рвёт Вам спину, изнемогая от оргазма?
Сайт: https://eroctive2.blogspot.ru/

2018-03-28 04:58:11
KennethBok
Как часто Ваша партнёрша кричит в постели и рвёт Вам спину, изнемогая от оргазма?
Сайт: https://eroctive2.blogspot.ru/

2018-03-28 01:51:17
KennethBok
Как часто Ваша партнёрша кричит в постели и рвёт Вам спину, изнемогая от оргазма?
Сайт: https://eroctive2.blogspot.ru/

2018-03-27 23:24:49
KennethBok
Как часто Ваша партнёрша кричит в постели и рвёт Вам спину, изнемогая от оргазма?
Сайт: https://eroctive2.blogspot.ru/
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

В какой обстановке Вы программируете?
.. с пивом и друзьями ночью
9% (16)
.. без пива, но с друзьями
2% (3)
.. с кофеваркой в обнимку
23% (40)
.. с мешком чего-нибудь хрустящего
15% (27)
.. один, но с Rammstein ..
51% (89)

Проголосовало: 175
Чем больше узнаю людей, тем больше люблю компьютеpы...
Рейтинг: 7/10 (1)
Посмотреть все анекдоты