Pull to refresh

Comments 20

может быть автор и хотел, показать чтото интересное или новое, но к сожалению не удалось тему раскрыть.
Пожалуй, надо было отметить, что топик будет интересен лишь тем, кто уже знаком с php-5.3 и его концепцией namespace'ов… Впрочем, я готов обсудить любые моменты по этой теме, которые кажутся непонятными или нераскрытыми в топике. А вот размытыми фразами вроде «тема не раскрыта», к сожалению, не помочь ни себе, ни другим :)
Непонятно, что происходит после использования use (из вашей статьи). Если это просто зависимости может проще их обозначать через doc блоки? А если не только, то зачем?
Для начала рекомендую почитать материалы по неймспейсам, например: blog.felho.hu/whats-new-in-php-53-part-1-namespaces.html.

По вашему вопросу: «что происходит после использования use» (хотя это и не подпадает под тематику статьи)?

Говоря в начале файла «use foo:: bar:: Baz as FooBarBaz;» — мы даем понять интерпретатору, что если при компиляции в данном файле будет обращение к классу FooBarBaz (создание экземпляра, обращение к статическому методу или свойству) — то это означает, что следует использовать при этом класс Baz из пространства имен foo:: bar. При этом в другом файле мы можем написать use anotherfoo:: bar:: Baz as FooBarBaz; — use имеет эффект до конца файла.

По вашему замечанию «Если это просто зависимости может проще их обозначать через doc блоки? А если не только, то зачем?»

doc блоки хороши, но программисты, к сожалению, не так хороши. Заставить программиста писать комментарии — зачастую непростая задача. С неймспейсами вам фактически придется указывать каждую зависимость (уж по крайней мере, если она не находится в том же пространстве имен, что и класс, который вы пишете) — это необязательно, но так писать будет гораздо удобнее, и вот появится блок вроде такого:
namespace my; use anotherns::foo; use foo::Class1; use foo::Class2; class Something { function bar(Class1 $c){...} }
Кроме того, сама ситуация, в которой окажется программист, будет его дисциплинировать (а по рукам его бить надо, ага ;)): если вдруг он забудет указать «use foo::Class1;» и объявит метод как
function bar(Class1 $c) {...} — то интерпретатор посчитает, что метод bar() должен принимать на вход объект my::Class1 — и ругнется при попытке передать ему экземпляр foo::Class1.

Надеюсь, ситуация хоть немного стала яснее.
Прошу прощения за форматирование — переводы строк съелись.
спасибо, стало яснее) написали бы это в статье и не было бы первого коммента.
UFO just landed and posted this here
Это, может, в ваших последних версиях не появились. А в моих — появились :) — www.php.net/archive/2008.php#id2008-08-01-1

Если говорить о продакшн-версиях, то появления стабильного релиза php-5.3 можно ожидать этой осенью, ну и, соответственно, первых секьюрити/багфикс-релизов, без которых вряд ли можно поставить его на серьезный проект — очевидно, зимой…
UFO just landed and posted this here
Статья — для тех, кто хочет быть, так сказать «на гребне волны»: знаком с последними нововведениями, которые делают — для нас с вами, заметьте, делают — разработчики PHP.

Насчет боевых условий — я лично применял. Правда, в проекте, который не рассчитан на публику, а написан для внутрикорпоративного использования (именно этот факт и позволил использовать свежие версии PHP).
UFO just landed and posted this here
Мил человек, не надо накидываться на другого только потому, что он думает или делает что-то не так, как вы. С нашими продакшн-серверами мы, слава богу, справляемся без чужих советов. И, между прочим, разработчики PHP считают ветку 5.3 более стабильной, нежели 5.2 :)

Сарказм ваш тоже не к месту: статей о PHP5 было уже немало, но эта кокретная статья — лишь о небольшом преимуществе использования пространств имен, о котором, по-моему, незаслуженно, умалчивается. УМАЛЧИВАЕТСЯ — поэтому статься и появилась.
UFO just landed and posted this here
1. На проект имеются модульные тесты и они отрабатывают без ошибок на дев. версии PHP, проект работает уже несколько месяцев и за это время не вскрылось ни одного бага, имеющего отношение собственно к PHP. Я просто ОЧЕНЬ рад, что мне выдалась такая возможность — проверить новую версию языка с его новыми возможностями — на живом проекте. Надеюсь, я более-менее верно понял вашу туманную и явно не совсем русскую фразу «Вы считаете что размещения софта выложенного для ознакомления разработчиков и находящегося в стадии тестирования-доработки, очень правильно?»

2. «На чем вы хотели сделать акцент? Что подчеркнуть?»
А вы, простите, текст читали?
UFO just landed and posted this here
В чем я точно не вижу никакого смысла — так это в продолжении этой дискуссии. Мы говорим на разные темы и на разных языках. Ну разве думал я, что эта статья уведет меня в рассуждения о стабильности софта, установленного на серверах? :)
UFO just landed and posted this here
самое плохое в этой ситуации, это то что пока хостинги перейдут на 5ку, то… ну наши дети не вырастут конечно, но в детский садик успеют пойти :) или закончить его, если только пошли в него.
Насколько мне известно, все ведущие хостинговые компании предоставляют возможность писать на PHP-5, по умолчанию или по требованию. И, поскольку переход с PHP-5.2.X на PHP-5.3, очевидно, не вызовет столь больших трудностей, как переход с 4ки на 5ку — в обозримом будущем (год-полтора) мы, думаю, увидим PHP-5.3 на серверах хостеров.
Sign up to leave a comment.

Articles