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

mount

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

SiZE

Новичок
Капец вы тут нагородили )))

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

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

mount

Новичок
Капец вы тут нагородили )))


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

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

Beavis

Banned
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
 

mount

Новичок
Я вообще про другое спрашивал.
Причем тут какой-то 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
в первой ссылке не указывается язык, т.к. он у нас по умолчанию, и для него незачем указывать язык в ссылке.
далее на основании ранее определенной константы формируются все ссылки. например если выбран язык по уолчанию, то к ссылкам ничего не добавляем. если язык не по умолчанию, то к ссылкам добавляем определенную константу.
так совсем плохо?
 

niko42

Новичок
Подкиньте, пожалуйста, хороший манул по генерации ссылок и MVC. Спасибо!
 

scb

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

Никаких констант, предположите что на ваш сайт зашел вами же нанятый переводчик, что будете делать?
 

mount

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

Никаких констант, предположите что на ваш сайт зашел вами же нанятый переводчик, что будете делать?
так вот я как раз и хотел узнать как лучше сделать, так как только начал изучать и ооп и mvc.
а можно небольшой пример реестра приложения? а то мне пока сложно понять
 

craz

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

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

mount

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

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

craz

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

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

mount

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

Для меня тоже было когда не понятно, что делает функция getValue setValue и их обрезанный синтаксис, переведите все поймете.
да я уже нашел на русском, пока не совсем понятно
 

craz

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

mount

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

craz

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

mount

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

craz

Нестандартное звание
Что в этом плохого?
Вы уже сколько сообщений с вопросами написали на форуме?
А у нас латенси много больше... чем у нативных функций


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

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

mount

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

SiZE

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