LINUX.ORG.RU

PHP 5.2.4


0

0

В этой версии исправлено большое количество разных ошибок, в т.ч. связанных с безопасностью. Также стоит отметить включение в состав пакета библиотеки PCRE 7.2 и улучшение взаимодействия расширения oci8 с новыми версиями Oracle. Всем, кто использует PHP, рекомендуется обновиться незамедлительно.

Скачать можно здесь.

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

★★★★★

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

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

> php как язык значительно проигрывает pythonу по красоте, чёткости, прямолинейности, компактонсти, уже не говоря про реализацию ООП, систему модулей и тд и тп

php убог как язык. python красив на словах.. но для web все эти красоты нафик не нужны. в чем толк от этой динамики? огромная часть фреймворчного кода выполняется лишь для конфигурирования некой среды, которая в полученном состоянии будет гонять одни и теже задачи.

вспомним любимую сообществом RoR идеому ActiveRecord.find_by_name_and_lame, которая позволяет использовать синтаксис неприспособленного языка для описания кастомной семантики. всякий раз, при вызове этакого "псевдометода" происходит куча одинаковый действий для постоения sql запроса. зачем? ведь код статический. к тому же запись, по внешнему виду, все равно остается корявой.

по хорошему, для конечных приложений нужен не фреймворк, а компилятор. нормальный декларативный язык для описания запросов в терминах объектов. ФП-ориентированный язык для шаблонов (тут везде рекурсивные структуры). событийно-ориентированный язык для описания схем контроллеров. python или php сойдут для бизнес-логики (которой в web'е мизер).

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

Извини, не анимешник и читать всю эту муть не хочу. Можно вкратце глубинную суть и связь с вопросом о яндексе сформулировать? :)

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

Как соотноситься ООП и PEAR , честно говоря не понял:) Далее 99% сидящих здесь когда-то были студентами. И то, чему учат студентов, и что они узнают сами __очень важно__ и объясняет многое. К примеру, очень часто уже такого уже не студента берут на работу, не важно как и почему, говорят, нужно реализвать web-проект. И на чём он будет его делать? Людей с какими знаниями он будет искать?
Ну а про ===, зачем усложнять? Тут вопрос не об экономии байта, а о том, что язык сам провоцирует со совершение ошибки.
А нынче всё-таки популярнее php - это так к слову...
ПС http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=python&...
то о сравнении интерпретаторов. И ещё, как у php с модульностью?

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

> Извини, не анимешник и читать всю эту муть не хочу. Можно вкратце глубинную суть и связь с вопросом о яндексе сформулировать? :)

При чём тут яндекс? Объясняю специально для модераторов. rayanami@yandex.ru. В качестве имени ящика использовано имя одного из главных женских персонажей культового аниме «Neon Genesis Evangelion», Рэй Аянами, 14-летней девушки с красными глазами и волосами голубого цвета, очень замкнутой и молчаливой, практически не испытывающей эмоций. В сочетании с Питоном и Zope это создаёт некоторый комический эффект. А теперь слегка приоткрываешь рот, и чуть приподняв уголки губ, с небольшим придыханием произносишь: «ха-ха-ха». Это ритуальная фраза землян, имеющая в данном контексте смысл: «до меня, правда, не совсем дошло, но я не хочу выглядеть совсем уж глупо». :P

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

> Объясняю специально для модераторов.

Ты отстал от жизни. :)

> А теперь слегка приоткрываешь рот, и чуть приподняв уголки губ, с небольшим придыханием произносишь: «ха-ха-ха». Это ритуальная фраза землян, имеющая в данном контексте смысл: «до меня, правда, не совсем дошло, но я не хочу выглядеть совсем уж глупо». :P

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

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

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

А как в Питоне различаются точное сравнение и с приведением?

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

== - всегда точное сравнение, автоматического приведения нет.
 cat test.py 
a=1
b="1"
if a==b:
        print "auto"
else:
        print "not auto"
if str(a) == b:
        print "explicit"

 python test.py 
not auto
explicit

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

>Одно из Правил в питоне - явное лучше скрытого.

Правда?

>>> 0==False
True

php -r 'echo 0==false ? "True" : "False";'
True

$ php -r 'echo 0===false ? "True" : "False";'
False

Так как в Питоне их различить? А то слишком много неявного :)

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

Вот например у меня во фреймоврке серия функций возвращает:

true, если функция обработала запрос самостоятельно и менеджер может прекратить работу.

false, если ничего не делала.

NULL, если пыталась работать и не смогла извлечь объект.

Какой-то объект, если дальше работать нужно с ним.

В Питоне, полагаю, в этом случае нужно возвращать хэш с кучей значений? :)

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

> Товарисч, как вы такой умный можете спрашивать такие глупые вопросы? Реализация REST, TDD, BDD - это проблема языка или всё-таки фреймворка? Что вам мешает взять фреймворк с нужной функциональностью?

Ну и где этот фрэймворк? Нету. И не потомучто это никому не надо. А потомучто пыхпыхеры, когда они понимают необходимость этого начинают изобретать велосипеды, а тем же RoR-овцем не надо ничего изобретать.

> И потом, кто вам сказал, что все вебприложения что-то кому-то обязаны? Через года три, а то и раньше родится новая модная технология, которая как и REST покрывает ныжды 5-ти процентов неудовлетворённых товарисчей, и что? Будете всё переписывать?

Если эта технология будет в чём-то настолько же удобнее, наскольоко REST удобнее обычного подхода к созданию HTTP-API, почему бы нет, благо у нас, в отличие от большинства пыхеров есть полностью покрывающие проект тесты/спеки, и рефакторинг мегагемора не составит:) Тем более опять же не будет нужды изобретать что-то самому. Так как сообщество скорее всего это сделает, причём очень простым и удобным путём.

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

> Как их различить?

> В PHP:
> $ php -r 'echo 1==1. ? "True" : "False";'
> True

> $ php -r 'echo 1===1. ? "True" : "False";'
> False

С трудом представляю, зачем их различать, но:

>>> 1 == 1
True
>>> 1 == 1 and type(1) == type(1.)
False

ero-sennin ★★
()
Ответ на: комментарий от KRoN73

> В Питоне, полагаю, в этом случае нужно возвращать хэш с кучей значений? :)

Если я правильно понял, что вы имеете в виду, то:

>>> class A(object):
...     pass
...
>>> a = A()
>>> a == True
False
>>> a == False
False
>>> a == None
False
>>> isinstance(a, A)
True

В питоне только численные типы автоматически приводятся к более общему, всё остальное надо приводить явно.

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

>С трудом представляю, зачем их различать

Да нет, просто только что тут кто-то бил пяткой в грудь, что "никакого неявного приведения!". А выходит, что аж набор правил. Тут приводим, тут не приводим... И всё это помнить надо. :D

>and type(1) == type(1.)

Вот-вот... Так что и в Питоне не всё настолько безоблачно :)

KRoN73 ★★★★★
()
Ответ на: комментарий от ero-sennin

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

Как показал опыт, ещё и логические значения :)

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

> Ну и где этот фрэймворк? Нету. И не потомучто это никому не надо.

Как раз потому. Как только понадобились mvc-фреймворки, их тут же написали.

Вы знаете, почему есть машины с ABS, подогревом задницы, электрозеркалами заднего вида и т.п., а есть без ABS, без подогрева задницы, с ручными зеркалами? Потому что не всегда нужна эта функциональность. С мобильными телефонами та же фигня. У каждого из вышеприведённых девайсов есть своя ниша, и глупо спрашивать, почему в Daewoo Nexia нет турбонаддува или VTT. Потому что нет, он там не нужен. Так же и с пхп vs руби/питон. Нету в пхп турбонаддува, он там не нужен. Для тех задач, в которых он хорошо применим не нужны все эти ресты и иже с ними.

> RoR-овцем не надо ничего изобретать.

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

Выходит, не только питонисты, но и рубисты сверхчеловеки.

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

Ну и до  кучи:
1 is 1
True
А в случае ошибок, всё-таки надо пользоваться исключениями, а не изобретать велосипед.

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

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

Да каждый год появляются новые технология. И я постоянно за этим слежу и изучаю на мой взгляд наиболее перспективные. Поэтому я буду постоянно на передних фронтах мэйнстрима, а те кто этим не занимается будет постоянно оказыватся в каменном веке -> будет делать конкурирующие проекты медленнее и менее качественно -> будет постоянно мне проигрывать.Что касаеться

> примеров, постеснялся б хоть: > c:\dev> rails myapp > c:\dev> cd myapp > c:\dev\myapp> ruby script/generate scaffold_resource airport name:string designator:string > c:\dev\myapp> rake db:migrate

Это к чему? Я вообщето про пыхпых спрашивал.

> Уж поверь, без проблем. А знаешь почему? Потому что сообщество пыхпыхеров ОГРОМНОЕ. А RoR - один-два профессора какой то академии, кои для реальности ничерта не делали и придумывают своих сферических коней в кубе.

ХАХАХА. Миллион индусокодеров против 1000 продуманных программистов и профессоров. Кто победит? Думаю определённо последнии. Потомучто от первых кроме бездумного кодинга ничего ожидать не приходится.

Подумай сам. Всего за 3 года. В среде RoR придумано столько замечательных вещей, которые в пыхпых среде никогда не сделают. Только сам рор чего стоит. И все его компоненты. Capistrano, Rbehave, RSpec, ActiveResource, миграции и.т.д и.т.п. а сделано это всё во многом благодаря замечательным способнотям ruby по созданию DSL, чего у пыхпых нет и в ближайшие 8 миллиардов лет не появится.

Ещё раз повторюсь - если php убог, то python/ruby убог вдвойне. Потому впредь просьба не сравнивать какие либо фреймворки с голым php.

> Ещё раз повторюсь - если php убог, то python/ruby убог вдвойне. Потому впредь просьба не сравнивать какие либо фреймворки с голым php.

Да руби и питон как языки тоже рвут пыхпых как тузик грелку. Но здесь мы обсуждаем средтсва разработки под веб. И под пхп нет не одного фрэймворка, вокруг которого было такое же комьюнити как вокруг рор. Их десятки но все не доделанных. А рор 1 и его поддерживает куча людей, причём далеко не индусокодеров. Посему рор всегда будет на пике прогресса web девелопмента, а пхп волочится где-то в хвосте.

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

> Тут приводим, тут не приводим... И всё это помнить надо. :D

Ну если бы арифметических выражениях надо было явно писать float(b) + float(b) / float(c), никто бы и пользоваться не стал таким Питоном.

Practicality beats purity (c)

ero-sennin ★★
()
Ответ на: комментарий от CrazyPit

> Миллион индусокодеров против 1000 продуманных программистов и профессоров.

Вранье.

> Их десятки но все не доделанных.

Вранье.

> Подумай сам. Всего за 3 года. В среде RoR придумано столько замечательных вещей, которые в пыхпых среде никогда не сделают. Только сам рор чего стоит. И все его компоненты. Capistrano, Rbehave, RSpec, ActiveResource, миграции и.т.д и.т.п. а сделано это всё во многом благодаря замечательным способнотям ruby по созданию DSL, чего у пыхпых нет и в ближайшие 8 миллиардов лет не появится.

Как бы ни был крут РоР и иже с ним, пока он не так востребован в РФ, как пхп. Мы от этого изначально плясали. С тезиса про "работать за еду". Тезис был опровергнут, и тут вылезли все эти мегафичи и ультратехнологии, котрыми роровцы размахивают как лозунгами. Может они и хороши, гламурны и кошерны, однако _пока_ больше нужны пхписты. И поэтому _пока_ имеет смысл ЗНАТЬ пхп, чтобы найти себе работу, когда очередной новаторский рор-проект рухнет от недостатка рабочей силы.

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

> почти все php-исты пишут свой движок?

еще один телепат..

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

> Всё-таки is намного понятнее, чем === :)

Но is, всё-таки, не совсем соответствует ===.

>>> class A(object):
...     pass
...
>>> a = A()
>>> b = A()
>>> a2 = a
>>> a is a
True
>>> a2 is a
True
>>> a is b
False

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

> Как соотноситься ООП и PEAR , честно говоря не понял:)

Хватит вилять то, а? ХВАТИТ!

>> уже не говоря про реализацию ООП, систему модулей и тд и тп.

> Насчет ООП согласиться можно, но PEAR тоже есть.

Объясняю, про ООП - я согласился, а про модули - ответ PEAR. Я негде не говорил, что ООП php - это ТРУ. Какой есть, такой и сойдет.

http://ru.wikipedia.org/wiki/PEAR

(Ну преодолейте наконец свой страх перед Википедей, да, она убогонькая и не тру нисколько, да к тому ж на быдло язычке - простите ж её.)

> Далее 99% сидящих здесь когда-то были студентами.

Обкакался насчет студентов, теперь начал вилять. Ха-ха... А с цифрами ты обращаться не научился ещё.

>Ну а про ===, зачем усложнять? Тут вопрос не об экономии байта, а о том, что язык сам провоцирует со совершение ошибки.

Ну что я говорил насчет =?? ;) Один лишний символ - ВСЁ - СЛОЖНО. А что трындеть надо было что пыхпых для тупого быдла?? ;) (объясняю - точка с запятой плюс скобка за ней - это так люди обозначают где они шутят)

>А нынче всё-таки популярнее php - это так к слову...

О, надо же, без вас это не было понятно!

А Земля все таки круглая и вращается вокруг Солнца - но это так к слову...

> ПС то о сравнении интерпретаторов.

Ну, это ж просто похвала PHP! А трендели ж, трендели - Python быстрее в разы, и даже на порядки. 2 раза - Ха - тем более для WEB - Ха 2 раза.

GUI винды быстрее X - от сюда делаем вывод... Так что ли?

Да, там не только интерпретаторы. Вот к примеру хваленный Python и C: recursive ~268. Как ты мог пойти на компромисс?? Скорость в 2 раза я ещё могу понять, но как 250 раз?? Иди и перечитай библию/каран/"учебник по Python" там наверно приводиться объяснение сей несправедливости.

> И ещё, как у php с модульностью?

Смотря что ты под ней понимаешь. Если опять где либо увиденная приблуда коя вам проела мозг, и кою ты считаешь истинным ТРУ - но нету. Потому успокойся и хватит навязывать свой Python.

Да и как ты, потомственный Python-ец, вообще позволил себе общаться насчет преимуществах/недостатках языка? Неужели сомненье? Миссионер что ли? ;)

(пыхпыхеры не питают иллюзий насчет сверхкрутости и законченного ТРУ того или иного языка, в том числе и об php)

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

> _пока_ больше нужны пхписты. И поэтому _пока_ имеет смысл ЗНАТЬ пхп, чтобы найти себе работу

Лучше 1С выучи, в любой деревне с руками оторвут.

ero-sennin ★★
()
Ответ на: комментарий от m57

>> Миллион индусокодеров против 1000 продуманных программистов и профессоров.

>Вранье.

>> Их десятки но все не доделанных.

>Вранье.

Аргументы у вас какие? Или опять враньё и соком в лицо? Есть framework под php более менее живой только cakephp, только вот при попытке посмотреть статьи на его сайте почему-то выдаёт пустую страницу.

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

> Лучше 1С выучи, в любой деревне с руками оторвут.

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

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

> Аргументы у вас какие?

Аргументы у меня простые -- где статистика индусокодеров? И где статистика доделанных/недоделанных фреймворков?

> Есть framework под php более менее живой только cakephp, только вот при попытке посмотреть статьи на его сайте почему-то выдаёт пустую страницу

А у меня почему-то выдаёт ту статью, которую я прошу. И cakephp не далеко единственный, если что.

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

> php-исты какие-то нервные:)

Это вы про истеричные вопли crazypit-а? :)

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

> Знание пхп не обязывает меня на нём писать.

Поц иент начинает путаться в показаниях? Ты сказал, что учишь ПХП, чтоб найти работу, и при этом не собираешься на нём писать? Или я что-то пропустил, и IBM нанимает свободных пыхпых-консультантов для корпоративных флеймов на слэшдоте за 120000$ в год?

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

> Ты сказал, что учишь ПХП, чтоб найти работу

Ссылку, где я это сказал, можно? Нельзя, потому что я этого не говорил.

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

>Ну лучше так: 1 is 1. False

А, ну вот. Та же фигня, два оператора. Один с приведением, другой - без :)

>Всё-таки is намного понятнее, чем === :)

Давай про синтаксис не будем. А то за "a = b if c else d" - даже Форт в гробу перевернётся :D

KRoN73 ★★★★★
()
Ответ на: комментарий от ero-sennin

>Ну если бы арифметических выражениях надо было явно писать float(b) + float(b) / float(c)

Ну, вот в C# почти такая картина (скажем, byte c = 1+5 там выдаст ошибку), однако его популярность такая же, как у Питона :D А то, что его MS пихает компенсируется его молодостью :)

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

>CrazyPit, в отличие от вас говорит по делу.

Нет, нет, мой милый друг - он просто говорит то, что приятно твоему мозгу.

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

> KRoN, сколько ты писал свой движок на php?

А Х.З. Нельзя срок назвать точный. Его корни уходят в 1997-й год и qbasic :D Сперва был офлайновый парсер-транслятор-шаблонизатор своего языка разметки в статический HTML для упрощения работы с сайтом. Потом был переписан на Форт. В ~1999-м вылез в онлайн на Перле. Года с 2002-го начал переползать на PHP. Года с 2004-го на PHP целиком. Нынешнему объектому механизму - около полугода (хотя сам он - фактически лишь модуль, структура-то - микроядерная).

Думаю, что сейчас с нуля точную копию воссоздал бы за месяц неторопливой работы, а запускать сайт на минимальном базисе можно бы было дня через три-четыре после начала работы :)

Сам видишь, тут очень трудно рассуждать о сроках.

> И ещё вопос: почему почти все php-исты пишут свой движок?

А я и на Питоне, если на него придётся перелезать, буду делать адаптацию нынешнего своего движка. Django - это не моё, мне вся его идеология не нравится. Но на Питоне возиться придётся больше, чем на PHP. Там нет, скажем, шаблонизатора уровня Smarty :) Cheeta - это далеко не то, что мне нужно :)

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

> Ссылку, где я это сказал, можно? Нельзя, потому что я этого не говорил.

Цитата: «И поэтому _пока_ имеет смысл ЗНАТЬ пхп, чтобы найти себе работу, когда очередной новаторский рор-проект рухнет от недостатка рабочей силы».

Сильно раздражает такое мышление. Да, мол, ПХП сосёт, да отстой, но что делать, хочешь вкусно кушать — надо нагибаться и делать, что говорят. А как иначе, когда безработных ПХП-кодеров мильён в любом ПТУ, и в любой момент тебя можно заменить кем-нибудь другим? Ну я и посоветовал: если не можешь осилить даже Питон, так выучи 1С, и работой будешь обеспечен, каким бы последним быдлокодером ты ни был.

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

>php-исты какие-то нервные:)

Попрошу не обобщать :)

KRoN73 ★★★★★
()
Ответ на: комментарий от ero-sennin

> А как иначе, когда безработных ПХП-кодеров мильён в любом ПТУ

Опять ложь. ПТУшники в своей массе вообще не знают о том, как что происходит в компьютере. Не говоря уж о пхп, питоне и прочем.

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

>Ruby:

А вот его я учить только разве что за большие деньги возьму. Синтаксис, идущий в разрез с любой эргономикой :D Вообще, всё японской какое-то. Иероглифическое ;)

Я бы сказал, что в своей нише сегодня Python и Ruby - это антиподы :)

KRoN73 ★★★★★
()
Ответ на: комментарий от ero-sennin

> и в любой момент тебя можно заменить кем-нибудь другим?

Читать ты не умеешь, насколько я понял. Я уже неоднократно сказал, что Я НЕ ПИШУ НА ПХП. Как еще до тебя донести эту мысль?

> если не можешь осилить даже Питон

Кто ж тебя сказал, что я не могу осилить питон? Ты телепат? Осилил. Поэтому и не лезу с питоном везде и всюду. Я, в отличие от тебя, мнение о чем-либо составляю сам, а не начитавшись ЛОРа.

> Цитата: «И поэтому _пока_ имеет смысл ЗНАТЬ пхп, чтобы найти себе работу, когда очередной новаторский рор-проект рухнет от недостатка рабочей силы». Сильно раздражает такое мышление

То есть, ты сам придумал за меня фразу, что "я учу пхп", сам её логически развил, выпалил коммент ради score и рад. То, что это не имеет отношения к действительности, тебя не волнует. Лишь бы отметиться.

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

> Ну и где этот фрэймворк? Нету. И не потомучто это никому не надо. А потомучто пыхпыхеры, когда они понимают необходимость этого начинают изобретать велосипеды,

Боже, какой упёртый фанатик. Тебе лет сколько, сынок? Ты этот REST в руках держал, на зуб пробовал? Любишь базворды, жить без них не можешь? И в телевизоре рекламу не отключаешь никогда? Мне тебя искренне жаль.

> а тем же RoR-овцем не надо ничего изобретать.

А кто такие RoR овцы? Если ты имел Ruby-баранов, то узнай, что они они всё-таки изобретают самокаты, с большим трудом, но всё же...

http://www.nitroproject.org/ Вот это видел? Скажи, что им им не хватало в прекрасном и удобном RoR?

Я воообще хренею, дорогая редакция, с этих рабироровцев. За много лет написали один отдалённо пригодный для работы фреймворк, и стучат себя в грудь пяткой до потери сознания исходя слюной. А для php существует десятки очень известных фреймворков и сотни менее известных, каждый заточен под свои задачи, и никто при этом не кричит на каждом углу. В чём секрет? ;)

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

> Там нет, скажем, шаблонизатора уровня Smarty :)

Детский сад, вторая группа. :) Шаблонизаторов хоть лопатой грузи. Есть Mako, есть Genshi, есть Jinja, есть вообще Brevé, выбирай на вкус. А клона Smarty 1:1 нет и не надо. Или ты слишком привык к Smarty и рассуждаешь по типу "хочу в линуксе диск С: и нивалнуит?".

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