Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: namespace видает ошибку
Fatal error: Namespace declaration statement has to be the very first statement in the script in
не понимаю из за чего ето ошибка. верся пхп 5.3.3, ОС виндовс.
Мелкий
Отправлено: 23 Апреля, 2012 - 12:16:37
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
BOM, похоже.
----- PostgreSQL DBA
dadli
Отправлено: 23 Апреля, 2012 - 12:18:27
Посетитель
Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011 Откуда: тифилис
Помог: 5 раз(а)
Мелкий
даа точно, спасибо огромное
Okula
Отправлено: 23 Апреля, 2012 - 13:46:36
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
вообще не понимаю зачем в PHP 5.3 сделали пространство имён, ведь это практически тоже самое что писать инклуды в каждом файле.
DelphinPRO
Отправлено: 23 Апреля, 2012 - 17:14:19
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
тоже не понимаю этой фишки
перечитал мануалы, кучу статей, но так и не понял в чем профит
Нужно либо неймспейсы прописывать в начале каждого файла (равносильно инклудам)
Либо длинные имена типа
$c = new \my\namespace\for\Class();
Может кто-то объяснит простыми словами?
----- Чем больше узнаю, тем больше я не знаю.
OrmaJever
Отправлено: 23 Апреля, 2012 - 17:16:08
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Вещь полезная но в php они очень коряво реализированы!
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
caballero
Отправлено: 23 Апреля, 2012 - 18:33:50
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
вообще не понимаю зачем в PHP 5.3 сделали пространство имён, ведь это практически тоже самое что писать инклуды в каждом файле.
не то же самое - по неймспейсам можно автолоад делать - в этом и смысл
что могут быть классы с похожими именами в разный неймспейсах
не надо файлам давать имена типа cms_user_accout_view
Неудоббство только что нету как в яве * подключать сразунесколько
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
По мне так удобнее в имени класса делать разделитель (типа нижнего подчёркивания), чем писать лишние килобайты кода.
Автоматически можно подгружать и классы с такими именами: User_Loads и т.д. Тому пример шаблонизатор Twig, от разработчиков фреймворка symfony.
DelphinPRO
Отправлено: 23 Апреля, 2012 - 22:01:11
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
caballero пишет:
по неймспейсам можно автолоад делать - в этом и смысл
по _ тоже прекрасно делается автолоал
caballero пишет:
не надо файлам давать имена типа cms_user_accout_view
зато надо писать \my\namespace\for\Class::$prop;
что короче? (вопрос риторический.)
одинаковые имена классов в разных пространствах - сомнительное преимущество.
----- Чем больше узнаю, тем больше я не знаю.
OrmaJever
Отправлено: 23 Апреля, 2012 - 22:21:27
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
точно не помню синтаксис php, но должно быть так. У пространства имён есть большое преймущество, но в двух словах его не описать.
Вы все так переживаете про лишние символы в названии класса, можно написать так
и дальше мы можем использовать весь код этого пространсва без его названия. Вы предираетесь к мелочам типа лишней строки кода, но иногда очень полезная весч. Вот была тема где человек хотел обьеденить 2 цмс, но у них были одинаковые имена функций, а если бы в каждой код был в своём пространстве было бы всё по другому. Вот ещё пример из Си, есть огромный фреймворк Qt, в нём около сотни классов и куча функций и имена этих функций самые читаемые, и вот если бы весь фреймворк небыл в своём пространстве я бы не смог создавать функции с такими же именами или классы или ещё что-то.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
DelphinPRO
Отправлено: 23 Апреля, 2012 - 23:13:39
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
OrmaJever пишет:
У пространства имён есть большое преймущество, но в двух словах его не описать.
видимо придется попробовать в действии, чтобы ощутить ту прелесть, о которой все поют дифирамбы
OrmaJever пишет:
Вы предираетесь к мелочам
Не придираюсь. Пытаюсь понять целесообразность использования.
----- Чем больше узнаю, тем больше я не знаю.
Okula
Отправлено: 23 Апреля, 2012 - 23:39:34
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
OrmaJever пишет:
Вы предираетесь к мелочам типа лишней строки кода
Вот только эти "лишние" строки замедляют разработку проекта, ведь на них тоже нужно потратить время на набор символов .
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.