вопрос по ООП и mvc

  • Автор темы Автор темы mount
  • Дата начала Дата начала
В центре ООП находится понятие объекта. Объект — это сущность, которой можно посылать сообщения, и которая может на них реагировать, используя свои данные.
Объектно-ориентированное программирование
т.е. не придумывать константы и каждый раз как возникает надобность обращаться к нужному классу и получать значения?
 
Капец вы тут нагородили )))

а ежели надо в другом скрипте, например который генерирует меню, определить ссылку на меню в зависимости от языка, то также надо обращаться к классу и через него генерировать ссылки?
То как ты описываешь, вызываешь и хранишь классы называется подход к программированию или паттерн. ООП это несколько больше чем просто объявить класс. Это философия, ну по крайней мере я так это могу объяснить.

По твоему вопросу. Обычно есть объект который доступен во всех скриптах. Это может быть само ядро или какой-то реестр. В этот объект ты можешь сохранять другие объекты, сущности и использовать их когда тебе угодно. Но вариантов много, можно сделать его глобальным и по другому.
 
Капец вы тут нагородили )))


То как ты описываешь, вызываешь и хранишь классы называется подход к программированию или паттерн. ООП это несколько больше чем просто объявить класс. Это философия, ну по крайней мере я так это могу объяснить.

По твоему вопросу. Обычно есть объект который доступен во всех скриптах. Это может быть само ядро или какой-то реестр. В этот объект ты можешь сохранять другие объекты, сущности и использовать их когда тебе угодно. Но вариантов много, можно сделать его глобальным и по другому.
а, т.е. сделать новый объект, в котором получить нужные часто переменные и потом обращаться только к этому объекту?
Но тогда при обращении к этому объекту не будет вызываться каждый раз тот объект, где генерируются эти значения?
 
PHP:
foreach( array('ru','en') as $lang ) if( $lang == LANG ) $selected = true;
это разные вещи
Я вообще про другое спрашивал.
Причем тут какой-то selected?
Как ты выведешь для одной страницы все ссылки на её варианты на разных языках если класс, формирующий урл, будет брать язык из константы?
/ru/news/145.html
/en/news/145.html
/de/news/145.html
 
Я вообще про другое спрашивал.
Причем тут какой-то selected?
Как ты выведешь для одной страницы все ссылки на её варианты на разных языках если класс, формирующий урл, будет брать язык из константы?
/ru/news/145.html
/en/news/145.html
/de/news/145.html
в константе языка по умолчанию хранится например "ru", при заходе на сайт формируются три константы для ссылок: "en", "ee", "". далее на основании этих трех констант формируются ссылки для перехода на друние языки: /news/145.html, /en/news/145.html, /ee/news/145.html
в первой ссылке не указывается язык, т.к. он у нас по умолчанию, и для него незачем указывать язык в ссылке.
далее на основании ранее определенной константы формируются все ссылки. например если выбран язык по уолчанию, то к ссылкам ничего не добавляем. если язык не по умолчанию, то к ссылкам добавляем определенную константу.
так совсем плохо?
 
Подкиньте, пожалуйста, хороший манул по генерации ссылок и MVC. Спасибо!
 
Блин ну это же проблема высосанная из пальца
Выше сказали юзайте реестр приложения - это то место куда ты сложил что-то и в любой момент достал - к примеру, префикс языка. ВСЕ! нет проблемы

Никаких констант, предположите что на ваш сайт зашел вами же нанятый переводчик, что будете делать?
 
Блин ну это же проблема высосанная из пальца
Выше сказали юзайте реестр приложения - это то место куда ты сложил что-то и в любой момент достал - к примеру, префикс языка. ВСЕ! нет проблемы

Никаких констант, предположите что на ваш сайт зашел вами же нанятый переводчик, что будете делать?
так вот я как раз и хотел узнать как лучше сделать, так как только начал изучать и ооп и mvc.
а можно небольшой пример реестра приложения? а то мне пока сложно понять
 
Пример нельзя. Это тоже будет высосано из пальца. Смотрите в сторону http://framework.zend.com/manual/1.12/en/zend.registry.html

Это то, что я знаю более или менее хорошо.
Посоветовал бы там же на сайте, по референс гайду посмотреть, как строиться локализация. Ну и так же совет: не тащить все это к себе, а присмотреться и сделать проще. Зенд это монстр - сделать можно проще.
 
Пример нельзя. Это тоже будет высосано из пальца. Смотрите в сторону http://framework.zend.com/manual/1.12/en/zend.registry.html

Это то что я знаю более или менее хорошо.
Посоветовал бы там же на сайте по референс гайду посмотреть как строиться локализация. Ну и так же совет не тащить все это к себе а присмотреться и сделать проще. Зенд это монстр - сделать можно проще.
о, спасибо! а на русском по проблеме ничего не посоветуете? а то с английским туго :(
и может на пальцах вкратце расскажете как построить локализацию?
написал сообщение и вроде бы нашел в яндексе про zend registry, сейчас почитаю, но вкратце все равно интересно
 
о, спасибо! а на русском по проблеме ничего не посоветуете? а то с английским туго :(
и может на пальцах вкратце расскажете как построить локализацию?
написал сообщение и вроде бы нашел в яндексе про zend registry, сейчас почитаю, но вкратце все равно интересно
Надо стараться переводить, смысла нет писать программы написанные на английском языке... и не понимать основ и не уметь переводить....

Для меня тоже было когда не понятно, что делает функция getValue setValue и их обрезанный синтаксис, переведите все поймете.
PHP:
function setValue($value){
$this->value = $value;
}
function getValue(){
return $this->value;
}
 
Надо стараться переводить, смысла нет писать программы написанные на английском языке... и не понимать основ и не уметь переводить....

Для меня тоже было когда не понятно, что делает функция getValue setValue и их обрезанный синтаксис, переведите все поймете.
да я уже нашел на русском, пока не совсем понятно
 
да я уже нашел на русском, пока не совсем понятно
Смысл в том, что есть некий объект, который инкулдиться на фазе загрузки всего приложения -> внутрь приложения - это некое хранилище.
Его реализация трудна в плане философии программирования. Но это не важно. Сделайте так как вам понравиться. Можно сессии, можно базу или кеш. Не важно. Главное посмотрите как идет вызов переменной. Это даст возможность реализовать свой маленький лесипед)
 
Смысл в том, что есть некий объект, который инкулдиться на фазе загрузки всего приложения -> внутрь приложения - это некое хранилище.
Его реализация трудна в плане философии программирования. Но это не важно. Сделайте так как вам понравиться. Можно сессии, можно базу или кеш. Не важно. Главное посмотрите как идет вызов переменной. Это даст возможность реализовать свой маленький лесипед)
я вот сделал что router и язык определяется в неком классе, и когда появляется необходимость- делается запрос из этого класса. но мне кажется это нерационально каждый раз обращаться к классу, т.к. может возникнуть необходимость много раз обратиться к этому классу.
а с помощью Вашего предложения сделать через реестр я так понимаю достаточно будет один раз определить все нужные переменные и потом их где надо использовать, не зависимо от того в какой функции понадобится?
 
Мое предложение все равно сводиться к тому, что вы будете обращаться к статической функции класса... И это кстати не мое предложение это бест практикс как говориться.
Не стоит экономить на спичках.
 
Мое предложение все равно сводиться к тому, что вы будете обращаться к статической функции класса... И это кстати не мое предложение это бест практикс как говориться.
Не стоит экономить на спичках.
т.е. много раз обращаться к одной и тойже функции это вполне нормально и ничего плохого нет?
 
Что в этом плохого?
Вы уже сколько сообщений с вопросами написали на форуме?
А у нас латенси много больше... чем у нативных функций


Вы попробуйте 2 варианта. Ваш про константы и зендовский. Поймите в чем разница. Возможно что,быстрее и лучше будет зендовский, но он вас будет не устраивать к примеру в плане расширяемости.

Вы потратите мало времени, но будете иметь решение, которое мы сможем здесь же обсудить.
 
Что в этом плохого?
Вы уже сколько сообщений с вопросами написали на форуме?
А у нас латенси много больше... чем у нативных функций
что плохого пока не знаю, но мне кажется это не рационально :) но именно так я и сделал, правда не через реестр, но про реестры я поизучаю
 
т.е. много раз обращаться к одной и тойже функции это вполне нормально и ничего плохого нет?
Чистое ООП предполагает избыточность кода. Установка и полчучение значений сущностей объекта ведется через его методы. Это в идеале.
 
Сверху