Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> __autoload: плюсы и минусы 
V
    Опции темы
Gold Dragon
Дата 19.1.2012, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



В последнее время с талкиваюсь с всё частым обращением к __autoload()
Но в тоже время появилось два противоположных мнения: или очень положительное или очень отрицательное. Именно нейтральных не особо много.

Вот и хотелось бы узнать, что такого "хорошего" и что такого "плохого" в этой __autoload()? Ну или проще, использовать ли мне это в своих проектах?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Absinthe
Дата 19.1.2012, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



Я отрицательно к ней отношусь: нельзя несколько функций назначить.

Положительно отношусь к spl_autoload_register и не вижу ни одной причины ее не использовать.
PM MAIL   Вверх
Sanchezzz
Дата 19.1.2012, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



нету минусов это только удобство
минус если и есть то маленький регистр зависимый названия файла и пусть где  лежат файлы.

Absinthe не согласен из любой ситуации есть выход.


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Gold Dragon
Дата 19.1.2012, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



а как это всё же правильнее использовать (лучше на примере)?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
ksnk
Дата 19.1.2012, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(Sanchezzz @  19.1.2012,  12:16 Найти цитируемый пост)
Absinthe не согласен из любой ситуации есть выход.

Даже из ситуации, когда подключаемый к сайту сервис сам устанавливает __autoload ?

spl_autoload_register вместо __autoload просят применять даже на php.net. Нужна ли простому php-шнику ещё какая-то рекомендация?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Gold Dragon
Дата 19.1.2012, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



т.е. я по идее могу забыть о своих способах подключения классов и использовать это?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
ksnk
Дата 19.1.2012, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(Gold Dragon @  19.1.2012,  12:25 Найти цитируемый пост)
т.е. я по идее могу забыть о своих способах подключения классов и использовать это? 

Да. Если нет необходимости поддерживать php-4, то нет никакого смысла не использовать встроенные в язык средства.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Gold Dragon
Дата 19.1.2012, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



ну а в чём же её приимущества по сравнению с самописными средствами?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
krundetz
Дата 19.1.2012, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Gold Dragon, в том что тебе дается нативная поддержка автозагрузки, то есть достаточно написать так:
Код

$obj = new ClassName();



--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Absinthe
Дата 19.1.2012, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



Цитата

Absinthe не согласен из любой ситуации есть выход.
 Учи матчасть, ты просто не понял, что я написал.

Цитата

а как это всё же правильнее использовать (лучше на примере)?
 http://php.net/spl_autoload_register

Цитата

ну а в чём же её приимущества по сравнению с самописными средствами?
 В том, что на публичном хостинге работать будет, а полноценные самописные средства нет, т.к. придется самому компилировать. Потому что нельзя полноценный аналог написать не в виде сишного расширения.
Ну и еще в том, что написание аналогов стандартных функций всегда считается ###кодом, т.к. всегда ухудшает читаемость и поддержку кода.
PM MAIL   Вверх
krundetz
Дата 19.1.2012, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(Absinthe @  19.1.2012,  13:10 Найти цитируемый пост)
Ну и еще в том, что написание аналогов стандартных функций всегда считается ###кодом, т.к. всегда ухудшает читаемость и поддержку кода. 

Не согласен, так как нужно исходить из задачи и требований, на хабре по моему была статейка где описывалась как раз такая ситуация, где нативное решение пришлось заменить своим.
Цитата(Absinthe @  19.1.2012,  13:10 Найти цитируемый пост)
Учи матчасть

Не будь хамом плиз.

Это сообщение отредактировал(а) krundetz - 19.1.2012, 13:18


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Absinthe
Дата 19.1.2012, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



Цитата

из задачи и требований
 Аргументируй в контексте данной задачи.

Цитата

Не будь хамом плиз.
 Я не хамил. Нахамить я хочу лишь персонажу "супервладислав", но я его игнорирую - пока получается.
PM MAIL   Вверх
krundetz
Дата 19.1.2012, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(Absinthe @  19.1.2012,  14:34 Найти цитируемый пост)
Аргументируй в контексте данной задачи.

Просто поясню с чем я не согласен. А именно со словом всегда, вот в этом предложение:
Цитата(Absinthe @  19.1.2012,  13:10 Найти цитируемый пост)
всегда ухудшает читаемость и поддержку кода. 

В контексте же задачи топика безусловно это не оправдано.
Цитата(Absinthe @  19.1.2012,  14:34 Найти цитируемый пост)
Я не хамил.

ну значиться я не понял.


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Absinthe
Дата 19.1.2012, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



Цитата

Ну и еще в том, что написание аналогов стандартных функций
 Слово "аналог" однозначно и не допускает двоякого толкования. Прямо как наличие экстремизма в  Ветхом Завете.
Если что-то имеет дополнительный функционал - то это уже не аналог.
PM MAIL   Вверх
Sentox
Дата 19.1.2012, 23:50 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Вообщето многие опытные программисты и разработчики вроде Макконнелла и т.д.(специализирующиеся по "чистому коду") очень рекомендуют задавать явное подключение и разброс подключений по функциям, файлам и тем более классам крайне не желателен. Я согласен впринципе с ними, так как если поддержку, или чего хуже расширение системы, проводит сторонний разработчик или группа разработчиков (да ещё с более низкой специализацией) автолоад может несолько усложнить понимание архитектуры. Всегда желательно явная архитектура особенно в подключаемых файлах. Мало того фактически подключение ведётся в зависимости от абстракции, то есть в индексном файле - окружение, в фабриках - определённые классы абстракций, а использовать функцию для отдельного аспекта как то не резон, лучше всё таки определить это место явно впереди инстанцирования или в индексном файле.

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

Это сообщение отредактировал(а) Sentox - 19.1.2012, 23:54
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0593 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.