LINUX.ORG.RU

Готовимся к PHP6


0

0

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

  • Улучшена поддержка юникода
  • Упразднены register_globals, magic_quotes и $HTTP_*_VARS
  • Выброшена поддержка библиотек GD1 и FreeType1
  • safe_mode больше не используется
  • Добавлена поддержка 64 битной целой арифметики
  • Фигурные скобки больше не используются для доступа к строке по индексу
А также многое другое.

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

★★★★★

Проверено: Shaman007 ()

> var will be an alias of public, and raises E_STRICT warning.

Чё-т фиг их поймёшь

В 5.0 var давал e_strict

В 5.2 он стал просто public без всякого E_STRICT

В 6 опять будет E_STRICT?

Хотя... Unofficial - так что фтопку.

INFOMAN ★★★★★
()

Это боян офигеть какой давности. На новость не тянет вообше ни в какую...

> уникода

КЛБ

boombick ★★★★★
()

Когда они наконец выкинут с-подобный синтаксис, перейдут на выделение блоков отступами и сделают код Django-совместимым?

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

>Когда они наконец выкинут с-подобный синтаксис, перейдут на
>выделение блоков отступами

М... Как на Питоне записать покороче вот такое:

if(not scores.has_key(killer)):
    scores[killer] = 1
else:
    scores[killer] += 1

то, что на PHP записывается в @$scores[$killer]++;

?

Или:
    for namev in names:
        val = " "
        if(counts.has_key(namek)):
            k = counts[namek]
            if(k.has_key(namev)):
                val = str(counts[namek][namev])
        cnts += [val]


как упростить до аналога:

foreach($names as $name)
    if(!($val = counts[$namek][$namev]))
        cnts[] = $val;
    else
        cnts[] = " ";


?

KRoN73 ★★★★★
()

PHP & C-подобный синтаксис наше фсё!!! =)

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

for namev in names:
        val = " "
        if(counts.has_key(namek)):
            k = counts[namek]
            if(k.has_key(namev)):
                val = str(counts[namek][namev])
        cnts += [val]

==

for namev in names:
        try:
             cnts += [str(counts[namek][namev])]
        except:
             cnts +=[" "]
     

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

ЗЫж никто же не говорит unix way is obsolete =) Есть вечные ценности ))

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

Можно ещё короче: for namev in names: cnt+= [str((counts.get(namek,{namev:" "}).get(namev," ")]

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

Можно ещё короче:
for namev in names:
        cnt+= [str((counts.get(namek,{namev:" "}).get(namev," ")]

Но первый вариант понятнее:) А на пыхпыхе вообще жуть, и строчек больше.

krum
()

PHP - это глобально и надежно!

anonymous
()

Для своих проектов с PHP на С++, ибо нехрена себя баловать. в том чиле и для вебпрожектов. Удобнее будет написать на c++ и подрубить через cgi к апачу. Языки подобные пыху, которые с памятью разбираются сами, банально балуют и делают из программера быдлокодера. мое ИМХО, конечно.

AiFiLTr0 ★★★★★
()

PHP - это не Джава со всякими Спрингами и Хибернейтами. PHP - это для настоящих "хардкодеров"!

PS. Интересно, а все-таки когда Garden достигнет уровня популярности и надежности Spring Framework. Garden это вечная бета или провальный прожект типа drip'а?

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

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

Bioreactor ★★★★★
()

Народ меряется у кого короче? :)

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

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

>> Для своих проектов с PHP на С++, ибо нехрена себя баловать. в том чиле и для вебпрожектов.

> жжошь!

+1

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

--------
foreach($names as $name)
if(!($val = counts[$namek][$namev]))
cnts[] = $val;
else
cnts[] = " ";
-----------
foreach($names as $namev)
cnts[] = ($val = $counts[$namek][$namev]) ? " " : $val;

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

"Короткий код не может по определению содержать необходимый уровень проверок на вшивость.. как следствие xss, уязвимости и море гнилых высказываний в адрес аффтара.."

Аргументы? Те куски кода абсолютно идентичны по функционалу и проверкам входных данных. Так что отойдите, наконец, от лужи.

krum
()

PHP обречён. Чем сложнее и объёмнее сайт (веб приложение), тем меньше смысла в использовании PHP. Реально ASP.NET 2 сейчас - самый мощный инструмент разработки серьёзных веб-приложений.

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

> Удобнее будет написать на c++ и подрубить через cgi к апачу.

++

хотя C+FastCGI+nginx шустрее будет =)

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

Готовлюсь к PHP6. Начистил ружжо, задёрнул шторы, щурюсь, высматриваю - вдруг мимо проходить будет?..

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

> ASP.NET 2

Achtung! Вантузятник в треде!

ASP.NET громко чмокает сосет пинусы у тех же RoR и Django. А за VIEWSTATE оно вообще причисляются к лику педерастов.

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

> Языки подобные пыху, которые с памятью разбираются сами, банально балуют и делают из программера быдлокодера.

Ручное управление памяти убивает продуктивность нафиг, а толку от него - мизер, кроме осознания собственной трушности.

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

Аргементы будут? Что касается ViewState, какие альтернативы? Какие есть варианты передавать данные между страницами? Через сессию?

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

cnts=[counts.get(namek,{}).get(namev,' ') for namev in names]

А лучше по скорости:
cnk = counts.get(namek, {})
cnts = [cnk.get(namev,' ') for namev in names]

Ждём, конечно, новых пердежей в лужу от пыхолюбов.

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

> Какие есть варианты передавать данные между страницами? Через сессию?

Нет, ты что! Конечно засовывать в каждую страницу портянку base64-кода на двадцать килобайт - это куда лучше, чем короткий SID в куку. Чем больше хлама в странице - тем больше Ынтерпрайз!

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

>ASP.NET громко чмокает сосет пинусы у тех же RoR и Django. А за VIEWSTATE оно вообще причисляются к лику педерастов.

То ли дело кошерная жаба. Жаба! Жаба! Жаба! Жаба! Жаааабааа!

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

> Немного не понятно... оно по дефолту теперь как будет?

Оно теперь никак не будет, ибо курам на смех. Секурность хостинга надо средствами системы организовывать, без имбецилоориентированных костыликов.

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

Плюсы - это для ламеров, асм - наше все!

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

>Языки подобные пыху, которые с памятью разбираются сами, банально балуют и делают из программера быдлокодера.

+1. Я вот никак не соберусь свой хоумпейдж переписать на асме.

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

Ну конечно! А какой будет срок жизни сессии, что делать с открытием страницы в другом окне и как будет работать back никого не волнует.

20К - чего ж вы туда напихали, датасет?

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

да, и ещё. ViewState делает запросы контекстно-независимым, в отличие от сессий, что есть большой плюс (почему, надеюсь, объяснять не надо). И, разумеется, ViewState, как и любой другой инструмент, надо использовать по уму.

anonymous
()

>>Улучшена поддержка юникода

юникод или поддерживается или нет, типа наполовину беременна %)

anonymous
()

Обязательно буду готовиться, надо будет освободить немного места в /dev/null для PHP6.

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

Смартпоинтеры - наше фсио! Давить неовладевших. ) GC - только для гуру. Ловить меморилики в GC проге - знание доступное приближенным к Богу.

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

>> Для своих проектов с PHP на С++,

А ещё лучше - на русский.

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

>> Для своих проектов с PHP на С++, ибо нехрена себя баловать. в том чиле и для вебпрожектов. Удобнее будет написать на c++ и подрубить через cgi к апачу. Языки подобные пыху, которые с памятью разбираются сами, банально балуют и делают из программера быдлокодера. мое ИМХО, конечно.

Ээээ... Милейший, а вы знаете вообще, что такое коммерческий проект? Да еще и fixed cost, когда время ограничено и оплата почасовая, а dead-lines предельно жесткие?
В этой ситуации языки типа пыха рулят немеряно, ибо многие рутинные вещи берут на себя. Особенно, если использовать нормальный OpenSource framework, например, SymFony или PRADO (использовать с умом, ибо хорош, но, зараза, тяжеловат).

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

>Ээээ... Милейший, а вы знаете вообще, что такое коммерческий проект?

А зачем тогда тут пыхпых, если есть, к примеру, RoR ?

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

> ViewState делает запросы контекстно-независимым, в отличие от сессий

Мсье не понимает что сессий (одновременных) можно быть много? Просто вместо кучи говна в скрытом поле даем UUID, а данных храним на сервере.

А, ну да, в похапэ же родными средствами только одна сессия на момент времени, забыл...

anonymous
()

Вот ведь кодеров на машкоде набежало. PHP это типичный "растущий" язык, не знаю как это по научному. "Растущий" это когда язык рос с предметной областью и с программистами на нем программирующими.
И в настоящий момент PHP нужен не потому что это "настоящщий язык с хвостовой рекурсией в лямбда замыканиях" :) а потому что это язык написаный под задачу+платформу+среднего_программера.
Отсюда С-подобный синтаксис и прочие заморочки.
И который соотвественно вследствие этого является стандартом на хостинге. И в свою очередь породил массу кода которая уже делает все что надо и которой можно спокойно писать экстеншины.
Как говорил автор перла - "грязный язык для грязной работы".

И вот те кто для "быдлостраниц с гастевухой" предлагает жабу с гибернейтом недалеко ушли од тех кто предлагает это же делать на ассемблере.

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

>Ээээ... Милейший, а вы знаете вообще, что такое коммерческий проект?
>А зачем тогда тут пыхпых, если есть, к примеру, RoR ?

1. RoR мало распространен и почти не известен реальному заказчику.
2. RoR не предоставляется хостерами даже на VIP-тарифных планах -
только на выделенных серверах.
3. На чем писать, определяет заказчик.
4. Попробуй найти специалистов уровня Senior Developer или хотя бы
Middle Developer для RoR.
5. Попробуй найди QA-инженеров (а не дымных тестеров-студентов),
которые будут работать с RoR (писать тест-кейсы, проводить
автоматизированное тестирование).

Может, еще аргументы? :)
Или вы тоже никогда в коммерческой конторе не работали? :)

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

> ... а потому что это язык с которым даже тупое быдло может, сопливя книжку "похапэ для полных дибилов" написать на нем "hello, world" и чувствовать себя "программистом" ...

> ... И в свою очередь породил массу быдлокода и прочих "движков", в котором черт ногу сломит, но который так удобно копировать ...

here, fixed it for ya.

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

Извиняюсь, не туда запостил. Дебил - это тот ананимус что вякал про стрёмный view state.

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