[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Устроюсь на удаленную подработку
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
Zzepish
sergeiss
хм. Может ты и прав тут
paul85
ИМХО MVC без ООП, ээээм... Мягко говоря не совсем удобно!
Свернутый текст
Ок, это ПИПЕЦ КАК НЕУДОБНО! =)


По теме. Как раз недавно встраивал парсер прайсов в И-нет магазин, написанный в стиле 90х. Ну что могу сказать? Занятие не для слабонервных... Вот уж точно, как говорит господин twin: "телега впереди лошади". Попытался сворганить среди этого ада микро MVC (хотя какое там... Все равно что настоящий кофе сравнивать с кофейным напитком из автомата). Если интересно могу выложить - посмеетесь над моими потугами. =))

Но в том стиле я просто не смог себя заставить кодить. Увы...
sergeiss
Цитата (paul85 @ 24.12.2013 - 19:11)
MVC без ООП, ээээм... Мягко говоря не совсем удобно!

Вот тут позволь не согласиться. Категорически причем.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
kaww
paul85, Каким местом вы хотели использовать mvc при постройке парсера о_О? Для этой цели подходит сhain of responsibility, по крайней мере для схожей задачи (парсинг хтмл сайта из много больше 100 страниц, на каждой 5-50 товаров с различной ценовой политикой)выбрал именно этот подход, и он полностью себя оправдал
paul85
Цитата
Каким местом вы хотели использовать mvc при постройке парсера о_О? Для этой цели подходит сhain of responsibility

Там MVC для отображения всякой хрени. Ну типа загрузите файл... Верный/неверный формат. Ну такой мини-микро фреймворк. Даже что-то типа роутера присутствует. Все это безусловно смешно, но с хорошей фантазией именно так и выглядит. =)) Понятно, что сам парсинг никакого отношения к MVC не имеет...

Цитата
Вот тут позволь не согласиться. Категорически причем.

В чем именно? Что MVC на функциях неудобная вещь? Ну вот скажем есть модель foo в ней 10 методов. Каждому методу, естественно, нужен экземпляр mysqli. Так я в конструкторе обращаюсь к single tone и забираю для всей модели объект mysqli. Записываю его из конструктора в поле класса db и бед не знаю. Какой бы я метод не вызвал везде у меня $this->db. На процедурке же мне придется что делать? Либо объявлять в файле модели переменную, в которую записывать объект (в момент includ-а). Тогда в каждой функции потребуется писать global $db. Либо передавать в качестве параметра, но тут и вовсе непонятно как... Там обычно передаются из контроллера параметры. И контроллер ничего не должен знать о MySQLi.

И потом, если мы пишем в общем пространстве переменную с объектом MySQLi то она будет видна отовсюду. То есть нужен какой-то model_core что ли... Короче говоря вот в этом и заключается самое настоящее неудобство.

Ну мне так кажется...
sergeiss
Цитата (paul85 @ 24.12.2013 - 22:49)
На процедурке же мне придется что делать?

Ну, например, в любом нужном месте писать
include_once 'connect_db.php';

Там, внутри этого файла, и прописывается коннект к базе. Никаких тебе глобалов не надо, кстати. По крайней мере, если у тебя только одна БД, то глобалов точно не нужно.
Цитата (paul85 @ 24.12.2013 - 22:49)
И потом, если мы пишем в общем пространстве переменную с объектом MySQLi то она будет видна отовсюду.

Если ты в ООП создаешь класс для соединения с БД, то он также должен быть доступен отовсюду.

Плюс ко всему... Использование классов - это еще не ООП!!! Ты можешь в процедурном программировании использовать класс для коннекта к БД :) ООП ты при этом не получишь. Но получишь удобство от использования класса.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Zzepish
Блин! Я знаю, кем мне надо работать!
Нафиг программирование и прочие прелести! Буду подрабатывать тем, что буду делать холиварные темы на заказ)))
paul85
Цитата
Плюс ко всему... Использование классов - это еще не ООП!!!

Ну singletone это паттерн ООП? Я хоть в этом-то прав? ))

Цитата
Там, внутри этого файла, и прописывается коннект к базе. Никаких тебе глобалов не надо, кстати.

Ну тогда это получается просто нечто на инклюдах. Даже затрудняюсь сказать что это за подход. Получается не класс-сущность, а файл-сущность. Много-много творим мелких файликов, среди которых через некоторое время тонем. Я так тоже программировал до классов. Подход лично мне показался несовсем удобным.

Потом перешел на ООП. Согласен, может быть там его и нет в рафинированном виде, а просто классы с элементами ООП. Паттерны: фабрика, синглтон, делегирование, стратегия... Я их все использую по мере необходимости. Но и они не в чистом виде...

Цитата
Если ты в ООП создаешь класс для соединения с БД, то он также должен быть доступен отовсюду.

Да, класс со статическими свойствами и методами. Я его называю config. В нем хранятся настройки подключения к БД, методы для инициализации классов, таких как Smarty и goDB, через синглтоны... Очень удобно! Но не только это... Можно использовать и другие замечательные фишки, такие как autoload и не инклюдить просто так лишние тяжелые библии. Например мне для класса AJAX нафиг не нужен Smarty...

Ну и в конце концов Zzepish прав. Мы просто сейчас упадем в самый жесточайших холивар ООП vs процедурка. Я по этому поводу придерживаюсь такого мнения: всё нужно. И лопата и вилы... Но кому-то удобно копать грядки вилами, а кому-то лопатой и с этим можно спорить до бесконечности. Одни будут говорить лопатой быстрее, а другие, что вилами не перерубаем сорняки и в итоге экономим время на "выборке". =)
Zzepish
paul85
biggrin.gif
так оно и есть! Дело вкуса.
Не мог бы ты еще глянуть в тему про оптимизацию запроса? у меня там еще вопрос
inpost
Zzepish
а если оно мне в принципе не нравится?
- Не нравятся кошки? Да вы просто не умеете их готовить.

сам стиль написания.
- Стиль? И часто ты видишь ООП хороший?

Опять -же общие понятия я имею. Мне этого достаточно.
- В том то и дело, то, что ты можешь называть ООП - является быдлокодом ООП, так как ты его не знаешь толком. Учесть, что ты в кругу ООП-программистов не тусуешься, то нормального кода ты практически не видишь, отсюда говорить о том, что всё это плохо - глупо. Не надо спорить по поводу тех вещей, в которых не разбираешься ты.

Мне сама архитектура не нравится
- Архитектура ООП? Это как?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Zzepish
Цитата
- В том то и дело, то, что ты можешь называть ООП - является быдлокодом ООП, так как ты его не знаешь толком. Учесть, что ты в кругу ООП-программистов не тусуешься, то нормального кода ты практически не видишь, отсюда говорить о том, что всё это плохо - глупо. Не надо спорить по поводу тех вещей, в которых не разбираешься ты.

МОжет ты и прав. Я просто смотрел пару CMS и меня отпугнул ООП.
Цитата
Мне сама архитектура не нравится
- Архитектура ООП? Это как?

Стиль написания (хотя это может зависит и от программиста (смотри мой ответ несколькими строчками выше)
inpost
Zzepish
О каких CMS говоришь, где используется ООП на должном уровне?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
killer8080
Цитата (paul85 @ 24.12.2013 - 23:45)
Ну singletone это паттерн ООП? Я хоть в этом-то прав? ))

singleton это design pattern, т.е. шаблон проектирования, не посредственно к парадигме программирования он отношения не имеет.
Вот например синглтон без класса
function get_mysqli($config) { 
static $mysqli;

if(!$mysqli)
$mysqli = new Mysqli($config['db_host'], $config['db_user'], $config['db_pass'], $config['db_name']);

return $mysqli;
}


GET
killer8080

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

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
killer8080
ABC
mysqli клонировать нельзя
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.