LINUX.ORG.RU

Разработчики PHP объявляют о предстоящем окончании поддержки PHP 4.


0

0

Сегодня (13ого июля 2007ого года) исполняется три года с момента выхода PHP 5. За эти три года было сделано много улучшений по сравнению с PHP 4. PHP 5 сейчас быстрый, стабильный и готов к использованию в рабочей среде. На подходе уже PHP 6 и, соответственно, работы над PHP 4 будут прекращены.

Этим сообщением команда разработчиков PHP объявляет, что поддержка PHP 4 будет продолжаться только до конца года. После 31ого декабря больше не будут выпускаться релизы PHP 4.4. В определённых случаях мы будем продолжать исправлять критические ошибки безопасности до 08ого августа 2008ого. Пожалуйста, подготовьте ваши приложения для перехода на PHP 5 до конца этого года.

За документацией по переходу с PHP 4 на PHP 5, советуем обращаться к нашему "migration guide". Дополнительная информация содержится в руководствах по переходу с версий 5.0 на 5.1 и 5.1 на 5.2.

Новость переведена с оригинала на сайте PHP.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Ответ на: комментарий от hose

> как не посмотрю, любой пост про пхп опять заканчивается разбитыми мониторами, перекусанними сетевыми кабелями, треснувшими клавиатурами и выбитыми зубами, вот блин надоело уже к стамотологу ходить может пусть лучше каждый останеться при своем мнении ? ;)

Ни ша што!

Мы, познавшие "радости" пыхыпы, должны уберечь от этого подрастающее поколение %)

sv75 ★★★★★
()

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

pento ★★★★★
()
Ответ на: комментарий от pento

>Кто-нить уже может дать нормальное (так что бы все согласились) определение строгой типизации?

это когда нельзя изменять тип объекта (под обьектом подразумеваю именно саму переменнаю,а не ее имя)

anonymous
()
Ответ на: комментарий от sv75

>Ни ша што!

>Мы, познавшие "радости" пыхыпы, должны уберечь от этого подрастающее >поколение %)

довольно странные у вас методы,
я вот никак не пойму почему же все таки пыхпых - плохой язык ?

предлагаю проверенные методы - от противного или дедукция ;)
надеюсь так все встанет на свои места ...



просто интерестно уже почти как год пишу на пхп
ничего особо страшного и ужастного пока что не увидел ))

hose
()
Ответ на: комментарий от hose

> я вот никак не пойму почему же все таки пыхпых - плохой язык ?

Аргументы приводились в предыдущих флеймах. Смотри так же список изменений 4->5->6, чтобы узнать, какие решения сами разработчики сочли в дальнейшем ошибочными.

> просто интерестно уже почти как год пишу на пхп > ничего особо страшного и ужастного пока что не увидел ))

Писать год на пых-пых для этого, возможно, мало! Для этого надо писать еще год на чем-то ином! А так же думать.

sv75 ★★★★★
()
Ответ на: комментарий от hose

первое что приходит в голову 1. Не строгая типизация 2. Нет поддержки модулей 3. Как там с безопасностью?

продолжать можно долго особенно если сравнивать с питоном и руби...

anonymous
()
Ответ на: комментарий от sv75

зато в пхп есть одно но, и его можно отнести как к + так и к - что бы хорошо получать $ на C\C++\perl нужно во первых знать отличтно во вторых - иметь реальный опыт работы с ними, зделать какие-то свои проэкты и т.п., и на этой уйдет не мало времени , во вторых я не видел нигде столько удаленки как для пхп, что тоже не мало важно, для меня во всяк. случае

короче студенту который учиться где-то на окраине Украины - пусть великого kernel developer пока что мне видеться слабо

соглашушь что С\С++ гараздо мощней php но кодга дело касается $, то думаю в моем случае лучше выбрать именно пхп

em i'm wrong ? ????

hose
()
Ответ на: комментарий от hose

>зато в пхп есть одно но, и его можно отнести как к + так и к - что бы хорошо получать $ на C\C++\perl нужно во первых знать отличтно во вторых - иметь реальный опыт работы с ними, зделать какие-то свои проэкты и т.п., и на этой уйдет не мало времени

просто у нас как всегда экономят, нанимая дешевых но неквалифицированных работников, ну и как следствие огромное число некачественных сайтов...

>соглашушь что С\С++ гараздо мощней php но кодга дело касается $, то думаю в моем случае лучше выбрать именно пхп

сравни зарплату пхпыста, и например програмера на питоне, яве etc

anonymous
()
Ответ на: комментарий от anonymous

1. Тут получается что у питона вообще это по-особенному :) 2. Смотря что под модулем понимать. Если тот факт, что ядро языка перегружено и что функции/классы не разнесены по модулям то да... 3. Не уверен, что у тех же питона/перла при схожих конфигурациях (на пример как модули апача) проблем так уж и меньше с безопасностью

pento ★★★★★
()
Ответ на: комментарий от anonymous

Ну вообще говоря, чистые вакансии для питона надо ещё поискать... Зарплата пхпыста в 40-50 000 руб - это мало?

pento ★★★★★
()
Ответ на: комментарий от sv75

> факт в том, что строка почему-то преобразуется в число, хотя я об этом никого не просил:

Фанат поскаля? Где даже из беззнакового в знаковое целое надо переводить явно...

pv4 ★★
()
Ответ на: комментарий от anonymous

Другое дело, что разработчики пхп пытались заставить его делать то, что не являлось его "обязанностью" как языка программирования, как то: safe_mode, magic_quotes и тому подобное. Но вроде как они встали на более правильный путь и в 6-ке всего этого счастья не будет

pento ★★★★★
()
Ответ на: комментарий от pento

>Зарплата пхпыста в 40-50 000 руб - это мало? ну это ты загнул)... но даже если так, то сомневаюсь что туда возьмут человека который только и знает что несколько функций для работы с мускулем...

anonymous
()
Ответ на: комментарий от anonymous

>Фанат поскаля? Где даже из беззнакового в знаковое целое надо переводить явно...

А что тебе здесь не нравится? Все правильно, строгая типизация..

anonymous
()
Ответ на: комментарий от anonymous

>1. Не строгая типизация

- считать ли это недостатком? Вопрос предпочтения и личной дисциплины.

>2. Нет поддержки модулей

- смотря что считать модулем Ж). PECL PEAR модули? Другое дело единое пространство имен вносит свои неудобства. Ждем php6. Пока же дисциплина именований и грамотная работа с объектами.

>3. Как там с безопасностью?

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

kivsiak
()
Ответ на: комментарий от anonymous

http://job.ru поиск по php и зп от 1500$

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

pento ★★★★★
()
Ответ на: комментарий от pento

>Другое дело, что разработчики пхп пытались заставить его делать то, что >не являлось его "обязанностью" как языка программирования, как то: >safe_mode, magic_quotes и тому подобное. Но вроде как они встали на >более правильный путь и в 6-ке всего этого счастья не будет

Это безобразие и в 5 уже считается устаревшим и не рекомендовано. Да и в 4 нормальные хостеры этот мусор отрубают или по крайней мере деют возможность отрубить.

kivsiak
()
Ответ на: комментарий от pento

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

+1

про кривые руки тоже согласен, у самого бываю такие отрастают
(живу не далеко от чернобыля :) )

вообщем как обычно все остались при свое мнении ))
(во всяком случае я остался при своем)

hose
()
Ответ на: комментарий от hose

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

это я про этот пост

>зато в пхп есть одно но, и его можно отнести как к + так и к - что бы хорошо получать $ на C\C++\perl нужно во первых знать отличтно во вторых - иметь реальный опыт работы с ними, зделать какие-то свои проэкты и т.п., и на этой уйдет не мало времени

anonymous
()
Ответ на: комментарий от anonymous

>вообщем как обычно все остались при свое мнении )) (во всяком случае я остался при своем)

А это на самом деле и не является целью холивара)

anonymous
()
Ответ на: комментарий от pv4

> Фанат поскаля? Где даже из беззнакового в знаковое целое надо переводить явно...

Вы не отвлекайтесь. То есть вы одобряете конвертацию "строк, похожих на числа" - в числа, а "строг, непохожих на числа" - в ноль? Или нет?

sv75 ★★★★★
()
Ответ на: комментарий от pento

> Зарплата пхпыста в 40-50 000 руб - это мало?

Если речь идет о Москве и вообще, то тут любая з/п <$10.000 - мало. Квартиры нонче дороги.

sv75 ★★★★★
()
Ответ на: комментарий от sv75

Да, Москва - это вообще отдельное государство...

pento ★★★★★
()
Ответ на: комментарий от anonymous

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

>это я про этот пост

>зато в пхп есть одно но, и его можно отнести как к + так и к - что бы хорошо получать $ на C\C++\perl нужно во первых знать отличтно во вторых - иметь реальный опыт работы с ними, зделать какие-то свои проэкты и т.п., и на этой уйдет не мало времени

думаю вы совсем не поняли о чем я говорил

речь идет совсем не о паре ф-ция для работы с мускалем

hose
()
Ответ на: комментарий от hose

Тезисы "это хороший язык программирования, подходящих для указанных целей" и "этот язык хороший, я на нем деньги делаю сейчас" - разные.

Помнится в форуме по фотографии как-то появился школьный бломбила, который всем показал плохие (просто вызывающие ужас!) детские фотографии, а на всю критику говорил "ниче вы не рубите, народ-то хавает!" То есть он хороший маркетолог или еще кто-то там, но фотографии то он все равно страшные.

А какой-нибудь анонимный сноб расскажет, что сидеть всю жизнь на удаленке PHP - это плохой вариант, что молодость одна и ее надо потратить с толком, и т.д. А с другой стороны да, как-то говорили о товарищах, стабильно получающих по 70-90тр в месяц в провинции (где квартиру можно купить с такой зп), и делающих проекты на дельфи 7 кажется.

sv75 ★★★★★
()
Ответ на: комментарий от georgii

>У разработчиков дебиана есть машина времени?

давно пора бы знать: у разработчиков дебиана есть _Всё!_

:)

grinn ★★
()
Ответ на: комментарий от hose

>я вот никак не пойму почему же все таки пыхпых - плохой язык ?

у тебя еще все впереди

>просто интерестно уже почти как год пишу на пхп

>ничего особо страшного и ужастного пока что не увидел ))

подобная толерантность прекрасно выбивается граблями.

grinn ★★
()
Ответ на: комментарий от kivsiak

>>1. Не строгая типизация

>- считать ли это недостатком? Вопрос предпочтения и личной дисциплины.

Нестрогая типизация годится разве что для шелл-скриптов. А уж развитию самодисциплины она точно не способствует, скорее наоборот.

>>2. Нет поддержки модулей

>- смотря что считать модулем Ж). PECL PEAR модули? Другое дело единое пространство имен вносит свои неудобства. Ждем php6. Пока же дисциплина именований и грамотная работа с объектами.

Вот объясни, почему нельзя было сразу сделать как следует? Почему понадобилось 10 лет хождения по граблям? Ладно, ранние релизы можно простить. Но ведь PHP4 товарищи Гутманс и Сураски переписывали с нуля. Чем они думали вообще? Ведь хорошая поддержка модульности намного важнее чем даже встроенные средства ООП.

>>3. Как там с безопасностью?

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

Это верно только отчасти. Потому что когда к кривым рукам программиста добавляются кривые архитектура и реализация, эффект получается просто таки синергетическим в отрицательном смысле. И вот это как раз главный недостаток PHP. Ну нельзя давать неумехам такой ненадёжный инструмент. А низкий порог вхождения ещё больше всё это усугубляет. Потому что простота пыхпыха обманчива. За ней скрывается столько ям и кочек, что даже опытные программисты порой косячат в самых неожиданных местах.

А вообще конечно качественно написать можно всё что угодно на чём угодно. Но это никак не оправдывает страшненький и слабенький язык PHP и его глючную реализацию.

Hjorn
()
Ответ на: комментарий от sv75

>Тезисы "это хороший язык программирования, подходящих для указанных >целей" и "этот язык хороший, я на нем деньги делаю сейчас" - разные.

да вы наверное правы... вот здесь я ошибался

ну что ж признаю свою ошибку :)

hose
()
Ответ на: комментарий от sv75

> Ну попробуй сложить число и строку - узнаешь. Сравни с пых-пыхом (где '10' + 20 == 30).

Строга типизация не нужна.

$ php a.php '10'+20=30 '10' . 20=1020

anonymous
()
Ответ на: комментарий от anonymous

> Строга типизация не нужна.

'anonymous' * 2 = lol wut?

Нафик, нафик такие фокусы... Вон, декларация переменных ('use strict;') тоже не нужна - и как теперь похапэшники находят опечатки? Прогоном всех веток скрипта с поиском ворнингов? Похоже что моск тоже не нужен...

anonymous
()
Ответ на: комментарий от Hjorn

> Это верно только отчасти. Потому что когда к кривым рукам программиста добавляются кривые архитектура и реализация, эффект получается просто таки синергетическим в отрицательном смысле

Золотые слова.

Deleted
()
Ответ на: комментарий от grinn

>>ничего особо страшного и ужастного пока что не увидел ))

> подобная толерантность прекрасно выбивается граблями.

еще раз для блондинок:

все представления о преимуществах ПХП лехко выбиваюца грабляточка.ми паипалу. точка.

grinn ★★
()
Ответ на: комментарий от AngryElf

> Ага. А то что '1.5"' + 1 = 2.5 - это тоже нормально?

А как должно быть? Запусти, например, сишную printf("%f\n",atof("1.5\"")+2.5);


$ ./blah
2.500000

anonymous
()
Ответ на: комментарий от anonymous

> 'anonymous' * 2 = lol wut?

$ cat a.php <? print 'anonymous'*2; echo "\n"; ?> $ php ./a.php 0

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

$ cat atoi.c #include <stdio.h> #include <stdlib.h> #include <string.h>

#define BUFSIZE 128

int main(int argc, char**argv) { char *p, *pnum=NULL;

pnum=malloc(BUFSIZE);

// scanf() мы использовать не будет, потому что возможно переполнение буфера // а еще мы не будем использовать strcpy(), fscanf() и многое другое, что хранит опасности // и будем извращаться с fgets(), т.к. gets() использовать опасно /* scanf("%d",num); */ printf("Введите число:"); fgets(pnum,BUFSIZE,stdin); p=strchr(pnum,'\n'); if(p) *p='\0';

printf("\"%s\"*2=%d\n",pnum,atoi(pnum)*2);

if(pnum) free(pnum);

return 0; } $ gcc atoi.c -o atoi atoi.c: In function ‘main’: atoi.c:21: warning: incompatible implicit declaration of built-in function ‘strchr’ $ ./atoi Введите число:anonymous "anonymous"*2=0

Обращаем внимание на гиморрой с ручным выделением и освобождением памяти и прописывание даже базовых хедерных файлов, расжевыванием тупому printf с помощью "%d" какой результирующий тип получится у (int)*(int), на принудительное обрезание '\n', на комментарии объясняющие почему нельзя просто использовать scanf("%d",&num), на поведение atoi(), которая не позволяет различить ошибочные данные от числа 0 (!) и на бред от gcc при наличии #include <string.h>. Отсюда вывод: как С, так и другие языки со строгой типизацией, отнимающие кучу времени на разжевывание языку всякой херни, отправляются на йух к ассемблеру, подметать ул^W^W перекладывать битики.

anonymous
()
Ответ на: комментарий от anonymous

> 'anonymous' * 2 = lol wut?

$ cat a.php
<? print 'anonymous'*2;
echo "\n"; ?>
$ php ./a.php
0

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

$ cat atoi.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define BUFSIZE 128

int main(int argc, char**argv)
{
char *p, *pnum=NULL;


pnum=malloc(BUFSIZE);

// scanf() мы использовать не будет, потому что возможно переполнение буфера
// а еще мы не будем использовать strcpy(), fscanf() и многое другое, что хранит опасности
// и будем извращаться с fgets(), т.к. gets() использовать опасно
/* scanf("%d",num); */
printf("Введите число:");
fgets(pnum,BUFSIZE,stdin);
p=strchr(pnum,'\n');
if(p) *p='\0';

printf("\"%s\"*2=%d\n",pnum,atoi(pnum)*2);

if(pnum) free(pnum);

return 0;
}
$ gcc atoi.c -o atoi
atoi.c: In function ‘main’:
atoi.c:21: warning: incompatible implicit declaration of built-in function ‘strchr’
$ ./atoi
Введите число:anonymous
"anonymous"*2=0

Обращаем внимание на гиморрой с ручным выделением и освобождением памяти и прописывание даже базовых хедерных файлов, расжевыванием тупому printf с помощью "%d" какой результирующий тип получится у (int)*(int), на принудительное обрезание '\n', на комментарии объясняющие почему нельзя просто использовать scanf("%d",&num), на поведение atoi(), которая не позволяет различить ошибочные данные от числа 0 (!) и на бред от gcc при наличии #include <string.h>.
Отсюда вывод: как С, так и другие языки со строгой типизацией, отнимающие кучу времени на разжевывание языку всякой херни, отправляются на йух к ассемблеру, подметать ул^W^W перекладывать битики.

anonymous
()
Ответ на: комментарий от anonymous

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

интеллект онанимуса достиг феерических вершин, где можно сравнивать пыхпых и C? =)

geek ★★★
()
Ответ на: комментарий от anonymous

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define BUFSIZE 128

int
main (int argc, char **argv)
{
  char *pnum = NULL;
  char *q = NULL;
  double x = 0;

  if (!(pnum = malloc (BUFSIZE)))
    {
      perror ("malloc");
      abort ();
    }

  printf ("Введите число:");
  fgets (pnum, BUFSIZE, stdin);
  if ((q = strrchr (pnum, '\n')))
    *q = 0;
  q = NULL;
  x = strtod (pnum, &q);

  if (strlen (pnum) + pnum - q)
    {
      fprintf (stderr, "\"%s\" не является числом!\n", pnum);
      abort ();
    }
  printf ("\"%s\"*2=%d\n", pnum, x * 2);
  free (pnum);

  return 0;
}

kmeaw ★★★
()
Ответ на: комментарий от geek

> интеллект онанимуса достиг феерических вершин, где можно сравнивать пыхпых и C? =)

А почему нельзя чтобы показать весь гимор древнего языка со строгой типизацией и выделением ресурсов вручную, высокоуровневого ассемблера? Тем более у PHP синтаксис слизан с C(или ты не знал?), правда нет сишной капризности с типами, нет отвлечения на большое количество низкоуровневых действий и ему не станет дурно, если написать printf "%d" без () или весто двойных квычек написать одинарные. Подозреваю, что geek не знает ни одного ни другого, а умеет только гнать на кде и произносить заученные фразы как бот. :)

anonymous
()

В конторе с десяток проектов на четвертом пыхе, общий объем около миллиона строк кода. Из - за нехватки людей мы его поддерживать не успеваем, не то что куда то там переводить. Представляю картину как 9 августа 2008 находят критическую уязвимость, а фиксить некому. Вот веселуха. Да уж кто после этого будет пых расматривать для серьезных проектов, смешно. Кроме personal home page на нем писать ничего нельзя. Хорошо хоть предупредили успею заявление написать... благо си еще не забыл.

zorge
()
Ответ на: комментарий от anonymous

Как анонимус анонимусу скажу, как ты думаешь, на чем написан пхп? ;) неужели пхп написан на пхп? =) и почему таки ты сравниваешь языки разного уровня и применяемые для совершенно разных целей? Сравнивай тогда php и perl/python/ruby, если уж так хочется

anonymous
()
Ответ на: комментарий от kmeaw

> if (!(pnum = malloc (BUFSIZE)))

Точно, проверку не поставил.

> fgets (pnum, BUFSIZE, stdin);

Мдя, насчет fgets немного прогнал, сказывается бессонная ночь. fgets() следует исключить из списка строго запрещенных по причинам врожденной
небезопасности функций gets(), strcpy() и scanf(). Вот такой вот забавный язык - вместо того, чтобы просто выкинуть опасные функции они
заботливо разложены как грабли, их вообще там поно разложено: не уследил - получи переполнение, NULL/invalid address pointer
dereference, утечку или еще какое г.

> if (strlen (pnum) + pnum - q)

Ужас. Ладно, будем считать проверить можно, хотя в PHP это можно сделать куда как проще и элегантнее: is_int() / is_float /
is_numeric(), а после того как типы проверены проблемам будет неоткуда взяться.

И благодаря строгой сишной типизацией(строгая то она строгая, только printf-у на это похер) ты тоже налепил багов ;):

$ ./a
Введите число:12345
"12345"*2=0

- printf ("\"%s\"*2=%d\n", pnum, x * 2);
+ printf ("\"%s\"*2=%f\n", pnum, x * 2);


anonymous
()
Ответ на: комментарий от anonymous

> Как анонимус анонимусу скажу, как ты думаешь, на чем написан пхп? ;) неужели пхп написан на пхп? =)

Да знаю я все. Только у PHP синтаксис практически как у С, только менее строгий. IMHO если бы PHP был бы не только интерпретатором, то и в интерпретаторе php не было бы той кучи переполнений, которую постоянно фиксят.

> и почему таки ты сравниваешь языки разного уровня и применяемые для совершенно разных целей?

А почему бы и нет. На C, например, CGI пишут.

> Сравнивай тогда php и perl/python/ruby, если уж так хочется

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

anonymous
()
Ответ на: комментарий от hose

> em i'm wrong ? ????

hose, вы неправы раз так 20 - примерно столько ошибок в вашем шЫдевре :)

alexkuklin
()
Ответ на: комментарий от anonymous

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

Ну понятно, для тех кто слаще морковки ничего не пробовал и пых кажется сахарным. Тем не менее для высокоуровневого языка быть "практически как С" - это не очень то лестная характеристика.

Hjorn
()
Ответ на: комментарий от anonymous

> И это нормальная реакция, если тупой юзер вводит вместо числа херню.

На C программист сам этого попросил. Здесь никто не просил таких фокусов вытворять.

Здесь по-нормальному надо или бросать ошибку о несоответствии типов (Perl в strict режиме), или делать то что попросят - удвоять строку (Ruby, Python):

$ perl -e 'use strict "refs"; use warnings FATAL => qw(all); print "anonymous" * 2, "\n";'
Argument "anonymous" isn't numeric in multiplication (*) at -e line 1.
$ ruby -e 'puts "anonymous" * 2'
anonymousanonymous
$ python -c 'print "anonymous" * 2'
anonymousanonymous

anonymous
()
Ответ на: комментарий от anonymous

Ruby заявит о несоответствии типов: a = "anonymous" b = 2; # идет какой-то код puts a + b и получим TypeError: can't convert Fixnum into String from (irb):19:in `+' from (irb):19 from :0 поэтому обязаны сделать puts a.to_i + b или .to_f для float

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.