![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
В последнее время с талкиваюсь с всё частым обращением к __autoload()
Но в тоже время появилось два противоположных мнения: или очень положительное или очень отрицательное. Именно нейтральных не особо много. Вот и хотелось бы узнать, что такого "хорошего" и что такого "плохого" в этой __autoload()? Ну или проще, использовать ли мне это в своих проектах? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Absinthe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
Я отрицательно к ней отношусь: нельзя несколько функций назначить.
Положительно отношусь к spl_autoload_register и не вижу ни одной причины ее не использовать. |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
нету минусов это только удобство
минус если и есть то маленький регистр зависимый названия файла и пусть где лежат файлы. Absinthe не согласен из любой ситуации есть выход. -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
а как это всё же правильнее использовать (лучше на примере)?
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Даже из ситуации, когда подключаемый к сайту сервис сам устанавливает __autoload ? spl_autoload_register вместо __autoload просят применять даже на php.net. Нужна ли простому php-шнику ещё какая-то рекомендация? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
т.е. я по идее могу забыть о своих способах подключения классов и использовать это?
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Да. Если нет необходимости поддерживать php-4, то нет никакого смысла не использовать встроенные в язык средства. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
ну а в чём же её приимущества по сравнению с самописными средствами?
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Gold Dragon, в том что тебе дается нативная поддержка автозагрузки, то есть достаточно написать так:
|
|||
|
||||
| Absinthe |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
Ну и еще в том, что написание аналогов стандартных функций всегда считается ###кодом, т.к. всегда ухудшает читаемость и поддержку кода. |
||||||
|
|||||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Не согласен, так как нужно исходить из задачи и требований, на хабре по моему была статейка где описывалась как раз такая ситуация, где нативное решение пришлось заменить своим. Не будь хамом плиз. Это сообщение отредактировал(а) krundetz - 19.1.2012, 13:18 |
|||
|
||||
| Absinthe |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
|
||||
|
|||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Просто поясню с чем я не согласен. А именно со словом всегда, вот в этом предложение: В контексте же задачи топика безусловно это не оправдано. ну значиться я не понял. |
|||
|
||||
| Absinthe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
Если что-то имеет дополнительный функционал - то это уже не аналог. |
|||
|
||||
| Sentox |
|
|||
|
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
Вообщето многие опытные программисты и разработчики вроде Макконнелла и т.д.(специализирующиеся по "чистому коду") очень рекомендуют задавать явное подключение и разброс подключений по функциям, файлам и тем более классам крайне не желателен. Я согласен впринципе с ними, так как если поддержку, или чего хуже расширение системы, проводит сторонний разработчик или группа разработчиков (да ещё с более низкой специализацией) автолоад может несолько усложнить понимание архитектуры. Всегда желательно явная архитектура особенно в подключаемых файлах. Мало того фактически подключение ведётся в зависимости от абстракции, то есть в индексном файле - окружение, в фабриках - определённые классы абстракций, а использовать функцию для отдельного аспекта как то не резон, лучше всё таки определить это место явно впереди инстанцирования или в индексном файле.
При различных видах подключений файлов определённых абстракций приходится обрабатывать ошибки по своему иногда, автолоад является универсальной и не даёт той гибкости, ещё один момент. Это сообщение отредактировал(а) Sentox - 19.1.2012, 23:54 |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
spl_autoload_register вызывается только тогда класс не объявлен и при обращении к конкретному классу если он его не находит...
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
так же как и __autoload() -------------------- Amazing |
|||
|
||||
| Absinthe |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
|
||||||||||
|
|||||||||||
| Sentox |
|
|||
|
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
[/QUOTE] Честно говоря не хочется вступать в дискусию (всё таки это холивар чистой воды будет У Макконнелла, если кто внимательно читал, всё "пропитано" простотой архитектуры и построения и если что то задаётся неявно и можно сделать проще - это нужно сделать. По поводу цитаты - можете сами у Макконнелла да и не только у него найти - пишите для людей (программистов) а не для IDE, да так что бы можно было читать код и не искать где производится включение кода (особенно если касается разработчиков работающих не с IDE (не будем разводить холивар что пора бы уже перебраться на них)). Это меня наводит на программистов на JS, которые пишут имена переменных и функций наподобие "btcdret", как говорится - повбывав бы Я бы сказал дискусия на тему _autoload() подобна применению директивы goto, так же неявно задаёт смысл читаемого кода. Без цитат - Так же есть затруднение с переносимостью модулей (допустим модулей). При архитектруе фасад и фабрики мы могли бы модуль полностью сделать автономным, при "доверении" подключаемых файлов в __autoload мы лишаемся, некторой части автономности, а детальней при переносе в другой проект он уже потребует сторонних включений своих!!! же файлов, то есть мы перенесём знания структуры модуля во внешнюю структуру ... судите сами Это сообщение отредактировал(а) Sentox - 20.1.2012, 22:54 |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Sentox, если я правильно понимаю назначание __autoload то это в превую очередь исключение дублирующих include и require, а eже потом все остальное
Это сообщение отредактировал(а) krundetz - 20.1.2012, 23:16 |
|||
|
||||
| Sentox |
|
|||
|
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
Исключение дублирующих include и require - это include_once и require_once (при чём на уровне пхп машины!) всё остальное не должно это надстраивать если это уже до нас сделали. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Можно на эту тему? Кто в фасаде и фабрике расскажет фабрике где находятся модули? Не будет ли более корректно отвязать фабрику и фасад от информации о структуре файлов модуля и оставить им только собственную логику? Не повысит ли такая отвязка автономность модуля? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Sentox |
|
|||
|
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
Фактически фасад я упомянул так, для универсальности (скажем так пример модуля компилятора с фасадом к модулю (извините за тавталогию)), а вот фабрика может сама "знать" о с своей структуре и подключать файлы (хотя бы в switch (кстати хороший пример абстрактная фабрика, которая "отрывает" модуль от платформо - зависмости)). Допустим имеем одну фабрику (файл), который является так же и инфраструкторой модуля. При подключении одного файла - фабрики мы включаем в работу весь модуль не отдавая "знаний" включения его структурных файлов, а алгоритм использования модуля лежать может на интерфейсах фасада. Впринципе это моё мнение. Добавлено @ 23:39
Фасад наверное да, скорее всего, а вот фабрика как раз и призвана локализировать по определённой категории, аспекту или абстракции инстанцирование и подключение объектов. Так что её алгоритм основной как раз в этом и состоит. Добавлено через 12 минут и 33 секунды Наверное и скорее всего _autoload будет применим к конкретному аспекту подключения основных скриптов ядра системы, хотя честно говоря я не сторонник этого, несколько безответственно даёт разработчикам вносить включения классов, и если система будет раздуваться это грозит сложностями. Это сообщение отредактировал(а) Sentox - 20.1.2012, 23:40 |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Sentox, ТОесть, что свалить в одну кучу ДВА РАЗНЫХ механизма ( файловую структура модуля и фабричную логику) будет более правильно с точки зрения ООП, чем сделать 2 независимых друг от друга механизма?
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Sentox |
|
|||
|
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
Начнём с первого: к ООП это точно не относится Второе: вопросом на вопрос - в чём состоит суть фабрики (не абстрактной фабрики), и как лучше разделить аспекты подключения файловой структуры модуля и инстанциирование объектов из классов модуля? Это сообщение отредактировал(а) Sentox - 21.1.2012, 00:24 |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Спрашивая о "не абстрактной фабрике" стоит ее как то определить, не так ли? Фабрика, вообще говоря по символическому обозначению предоставляет некий конкретный объект. К примеру, по запросу "дай мне класс для отправки почты", в зависимости от конфигурации приложения и состояния сервера может выдать класс, основанный на mail, smtp или еще какой почтовой приблуде... Фабрика обязана знать КАК инициировать все эти разные классы, однако не обязана знать ГДЕ конкретно они находятся. Вообще говоря, все разговоры вокруг ООП и стиля программирования обязаны приводить к удобству повторного использования кода. При повторном использовании такой фабрики, в приложении с другой файловой организацией, но с тем-же примерно комплектом серв-объектов, не придется переписывать ее вообще. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Sentox |
|
||||||
|
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
Как же Вы не поймёте что файовая организация модуля локальна для модуля и соответственно фабрики.
Да нет же, я ж писал выше, она является ещё и инфраструктурой, если хотите index.php для модуля (компонента). И ещё как должна знать, если она "хочет" быть инфраструктурой модуля и единственной знающей единицей о структуре.. Всё же мой вопрос в силе? Я просто могу пример привести что при выходе "знаний" структуры наружу рушится целостность автономности. Это сообщение отредактировал(а) Sentox - 21.1.2012, 02:05 |
||||||
|
|||||||
| Absinthe |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
Это то же самое, что применение {} скобок: синтаксический анализатор заставляет их использовать по традиции, хотя в явном виде они ему не нужны. И уж тем более не нужны разработчику, т.к. для него код в первую очередь размечен отступами, а не кодом. |
||||||||
|
|||||||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
но ведь интепретатору нужно предприянять действия отсеевающие дубли? а так вроде бы один вызов одно подключение. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Хотелось бы увидеть. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Gold Dragon |
|
||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
так.. Я совсем запутался в этих рассуждениях. Можно чуть ближе к "земле"?
допустим, у меня есть ядро. где-то там я делаю функция
а вызов происходит примерно так
Т.е. при появлении new произойдёт вызов функции __autoload в которую передастся переменная ClassName(). Ну и соответственно в самой функции подключается файл _PATH . $class_name . '.php' Так? я так понимаю, что основной спор возникает при условии что если кто-то в одном из подключаемых модулей пожелает также сделать свою такую же функцию? Так? И ещё, что будет если в коде будут встречаться отдельно ? include_once _PATH . $class_name . '.php'; -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||
|
|||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Так.
Так. Для того, чтобы иметь таки возможность вставить в свой модуль свой автолод php.net рекомендует использовать spl_autoload_register - более гибкий аналог .
Ничего плохого. Если инклуд встетился ДО использования класса - автолод не будет вызван для загрузки этого класса, причем, если класс и не пригодится для работы приложения - он все равно окажется описан. Если после - еще раз тикнет процедура проверки include_once. Просто с автолодом можно вообще НИГДЕ не использовать инклуды. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
тогда дальше.. Из мануала я так толком и не понял как воспользоваться spl_autoload_register и как он вообще функционирует.. Поясните на простом примере.
и Второе, если встретится два spl_autoload_register что произойдёт и какой будет исполнен? или такого не может (не должно) быть? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Нужно написать функцию, которая выглядит и работает как __autoloaad, но называется по другому. и вызвать spl_autoload_register с параметром - именем этой функции.
Все функции, зарегистрированные таким образом будут вызываться по порядку, пока объект, который нужно получить, не подключится. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| Gold Dragon |
|
||||||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
то есть так?
а подключать так?
или как-то по другому?
Это сообщение отредактировал(а) Gold Dragon - 21.1.2012, 11:42 -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||||||
|
|||||||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
http://ru.php.net/manual/ru/function.spl-a...ad-register.php
там дофига примеров. Что конкретно не понятно? http://ru.php.net/manual/ru/function.spl-a...ister.php#95456 Вот наиболее простой пример, а все остальные рассказывают чем этот способ лучше простого автолода -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
ksnk, напиши пожалуйста пример на основе моего (самый верхний пост на этой странице ;) никак не могу ухватить суть с этими параметрами...
Это сообщение отредактировал(а) Gold Dragon - 21.1.2012, 14:00 -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
а вызов происходит примерно так
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| Gold Dragon |
|
||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
ВСЁ!!! теперь понял
Ну я примерно так и думал, что нужно через spl_autoload_register инициализировать функцию которая будет обрабатывать подключение. А дальше при new всё будет происходить автоматом тогда ещё один вопрос. Что будет при:
Добавлено через 2 минуты и 17 секунд и ещё. Из мануала пример, но не смог правильно перевести с инглиш
Что произойдёт и что будет вызиваться? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||
|
|||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
выведет.
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| Gold Dragon |
|
||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
а про ещё один вопрос
раньше я где-то подключал файл и потом где угодно использовал :: А сейчас это автоматом подключится или мне в любом случае хоть раз но нужно сделать
? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||
|
|||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
да, работает
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
ksnk, огромное спасибо за человеческие объяснения ;)
В общем теперь всё понятно что и как. Ну и соответственно понятно что лучше использовать в своих проектах -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
Gold Dragon, интересная статьтя http://habrahabr.ru/blogs/php/136761/
-------------------- Amazing |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
MoLeX, спасибо. отличная статья для понимая ;)
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |