Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
DeepVarvar,
не, оно говорит, что надо вызывать
$object->method();
а не
Class::method();
----- Чем больше узнаю, тем больше я не знаю.
teddy
Отправлено: 12 Июня, 2013 - 22:27:57
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
DeepVarvar пишет:
а надо написать:
public static function AddCart()
Да я уже давно исправил, спасибо )
По поводу синглтона хотел бы ещё раз определиться.. Вообщем прочитал всякого в интернете, мнений много, хотелось бы услышать дельный совет..
Дела обстоят так: Хочу написать большой проект(учебный), посвятить которому планирую не менее 2-3 месяца, будет много всяких фишек + админка. Читал что "неграмотное" использование шаблонов может привести в итоге к "замыканию" при переносе на хостинг или при расширении проекта. Вообщем встретил много всего интересного и чуть запутался... как говорится, сколько людей - столько и мнений..
Могут ли у меня возникнуть какие то подводные камни при использовании шаблона с которыми я скорее всего не сталкивался? Речь идет конкретно о синглтоне только для подключения к БД... А то в последнее время немного шокирован "открытиями" с которыми ознакомился на днях... Как оказалось, ньюансов более чем достаточно. Дабы не проворонить весь свой труд, хотелось бы уточнить этот момент... Сори если вопросы глупые, скорее всего так оно и есть )) Но в целях корректного обучения все же осмеливаюсь их здесь задавать... Спасибо заранее
Покинул форум
Сообщений всего: 176
Дата рег-ции: Нояб. 2012
Помог: 3 раз(а)
teddy, кст. про учебный проекты я бы писал на готовом фреймверке Kohana и.т.п
Т.к будет в итоге знания фрэймверка, которое довольно полезно будет, и можно будет смотреть что как реализовано... Я бы сделал именно так.
vanicon
Отправлено: 12 Июня, 2013 - 22:36:13
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
teddy пишет:
Читал что "неграмотное" использование шаблонов может привести в итоге к "замыканию" при переносе на хостинг или при расширении проекта
При переносе на хостинг, с какого это перепугу?
teddy пишет:
Дабы не проворонить весь свой труд, хотелось бы уточнить этот момент...
Какой труд, написали же что проект учебный.
А вообще запомните, что старый проект всегда появляется желание переписать (сделать лучше), видел у кого то в подписи, да и по себе знаю.
Так что пишите код, а позже поймете что написали не так и перепишите, от этого не куда не деться, а на пальцах не объяснить, это практика.
И я думаю что все проходили через это.
----- Так было, так есть и так будет
teddy
Отправлено: 12 Июня, 2013 - 22:38:49
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
spsu
Фреймворки я пока не использую, думаю в дальнейшем тоже не буду, если работа по этой части не подвернется... делать "на готовенькое" - не думаю что самый лучший способ.. лучше на своих ошибках учиться и набирать опыт, таким образом в дальнейшем я уже буду чувствовать себя увереннее... (Добавление)
vanicon пишет:
Какой труд, написали же что проект учебный.
Ну и что учебный? )
vanicon пишет:
Так что пишите код, а позже поймете что написали не так и перепишите, от этого не куда не деться, а на пальцах не объяснить, это практика.
Наверное вы правы... скорее всего моя самая большая ошибка заключается в том, что я хочу выучить все и сразу... Ну ничего с собой поделать не могу, руки чешуться ))
teddy
Отправлено: 13 Июня, 2013 - 15:11:28
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
Знаю, что многие из вас готовы меня уже пристрелить, но все же отпишу здесь ещё разок ) Вообщем, думал, ходил-бродил по инету, "слепил" в итоге "код", который указан ниже. Все работает, вот только не пойму одного. Как использовать соединение с БД внутри функции/метода остальных классов напрямую?
$db->query("INSERT INTO users(login, password) VALUES('login', 'password')") or die($db->error);
}
То нифига не отработает... Читал про глобальные переменные и понял, что использовать их не желательно..
Или тогда получается, что при использовании синглтона все sql запросы должны находиться "ЗА ПРЕДЕЛЕАМИ" классов или функций? А функции в свою очередь должны возвращать какой то результат, а уже потом в той области где доступен синглтон должен обрабатываться sql запрос на основе того, что вернет функция или метод из класса? Не удобно на мой взгляд...
Да, я жду ваших выстрелов
LIME
Отправлено: 13 Июня, 2013 - 15:15:26
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
$db->query("INSERT INTO users(login, password) VALUES('login', 'password')") or die($db->error);
}
$db не локальная переменная
teddy
Отправлено: 13 Июня, 2013 - 15:20:57
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
LIME пишет:
$db = DBconnect::getInstance();
Ах вот оно в чем дело... получается если каждый раз внутри функции я создавал бы объект типа $db = new mysqli(); - то при каждом запросе плодился бы каждый раз объект, здесь по сути все тоже самое выходит, но только без "плода" нового объекта.. Я почему то начал путать с "сокращением" кол-ва строк кода..
Надеюсь на этот раз я окончательно все и достаточно хорошо понял ) (Добавление)
LIME пишет:
$db не локальная переменная
имел ввиду ключевое слово global ) (Добавление)
Если нет никаких замечаний по последнему варианту + добавление от LIME, то тему можно закрыть )
Спасибо что помогаете ребята, я вам очень благодарен!
LIME
Отправлено: 13 Июня, 2013 - 15:44:51
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
teddy пишет:
каждый раз внутри функции я создавал бы объект типа $db = new mysqli();
не смог бы
у тебя приватный конструктор
new это вызов конструктора
vanicon
Отправлено: 13 Июня, 2013 - 15:45:03
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
teddy
Единственно что я бы подправил, так public static и private static а не static private.
Это незначительные мелочи, но это более правильно...
----- Так было, так есть и так будет
teddy
Отправлено: 13 Июня, 2013 - 15:53:18
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
LIME
В данном случае да, согласен. Но я имел ввиду предыдущий вариант, без использования шаблона, а тупо открывать и закрывать соединение в каждой функции или методе.. А с шаблоном то да, у меня же конструктор приватный, что запрещает создание новых объектов...
vanicon
Интересно, а в чем разница? )
Я думал сначала говорим, что все, что идет после ключевого слова static будет статическим, а не говорим что то, а потом "добавляем" что учти, это дело статическое... Может чего то недопонимаю..
vanicon
Отправлено: 13 Июня, 2013 - 15:57:40
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
teddy
Это вовсе не обязательно, и работать будет одинаково.
Но это как если бы константы писались бы в нижним регистре, работать будет, но это не совсем корректно, вот и все.
----- Так было, так есть и так будет
AlexAnder
Отправлено: 13 Июня, 2013 - 15:58:35
Частый посетитель
Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012 Откуда: Россия
Помог: 34 раз(а)
Цитата:
Я думал сначала говорим, что все, что идет после ключевого слова static будет статическим, а не говорим что то, а потом "добавляем" что учти, это дело статическое... Может чего то недопонимаю..
[quote="http://habrahabr[dot]ru/post/140637/ (D. Koterov)"]Аргумент простой — что имеет бОльшую вероятность быть измененным в будущем, должно поддаваться изменению легко. Public меняется на private или protected часто, а вот спецификатор static почти никогда не убирается. Править начало строки легче, чем ее середину, поэтому public — в начале.
Ну и плюс еще в c++, например, public — не модификатор, а начало секции. Поэтому остается привычка продолжать группировать по секциям.[/quote] (Добавление)
что будет если $_instance не null? Ничего?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.