Хочу начать добиваться целей и прогрессировать.Для этого буду вести дневники.Блог о борьбе с самим собой и вредными привычками.
что то ищешь тут паря?
воскресенье, 30 декабря 2012 г.
пишу отчет
По отжиманиям.Сегодня отжался.вчера нет позавчера тоже.делал отдых.
Вообщем вообще то все ок.тоесть отжимаюсь каждый день.это 2 дня я специально делал отдых.
так что все окей.
По обливаниям.
Обливаюсь каждый день.не пропускаю.
По похудению.
Жру.немного вроде но жру.потолстел на 5 кг.и ахуел.какое на 5.на7 БЛЯТЬ
причем на самом деле ждрал не очень много.но вот дня 2 последние жрат и вот тебе результат.
вообщем непонимаю.у меня такой организм.2 дня жрал и потолстел на 7 кг.блять это ужас.
нужно бросить жрать.я е знаю что уже писать.мне плохо.я себя плохо чувствую когда нажрусь.плохая енергетика.плохое настроение.ОСОБЕННО.когда нажираюсь мяса с картошкой пюре и потом иду на диван спать то просыпаюсь я с УЖАСНЕЙШИМ НАСТРОЕНИЕМ.
ПРОСТО УЖАС И УБИЙСТВО.поэтомунуэно перестать ЖРАТЬЬЬЬ
у меня нет сил просто писать.я не знаю уже что писать.я отчаиваюсь.
вроде есть результаты какие то.и жру меньше.и качество пищи лучше.а все равно
поправился.все равно жрал на ноч.все равно жру мамину хуевую пищу.ВСЕ РАВНО.
все равно веду себя как зомби.все равно все идет по замкнутому кругу.ничего не изменилось.у не похудел.хотя прошло уже месяц или полтора.за такое время люди худеют на 5-10 кг легко.
а я нихуя не похудел.отсюда выводЧТО Я БЛЯТЬ БЕЗВОЛЬНЫЙ ЧЕЛОВЕК,Я ЕЩЕ НИЧЕГО НЕ СДЕЛАЛ ДЛЯ ПОХУДЕНИЯ!!!!НИЧЕГО!!!!!!!Я ТОЛЬКО ПОТОЛСТЕЛ!!!!!!БЛЯТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!И ЭТО РЕАЛЬНОСТЬ!!!!!!!!!!!хотя я и жрал меньше.и не ем жаренного и т д новсе равно я чувствую себя хуево.ВСЕ РАВНО.ПОТОМУ что Я ТОЛСТЫЙ.и немогу похудеть.хотя время идет.я не хочу худеть спортом.только диета.у меня еще не настолько все плохо.я могу перестать жрать и похудеть.я могу.я это знаю у меня всегда была сила воли.они никуда не делать.
я немного думаю что это родители пьют мою енергию.много виновата в том что я плохо ем это мама.реально.она готовит говняную пищу.а я ведусь и ем ее.ведь смотри.самосознание у меня все таки изза дневника поменялось.я стал нормально питаться когда я не дома.когда я дома я ем хуйню которую мама готовит.бывает они готовит нормально но бывает хуйню.и вроде пароварка и вроде картоха.но это пиздец.кстати нунжно перестать есть картошку.МОЖЕТ ИЗЗА НЕЕ Я ТОЛСТЕЮ.
ВОТ !!!!!!!!!!!!!!!!!!ТЕПЕРЬ ОБЬЯВЛЯЮ ВОЙНУ КАРТОШКЕБЛЯТЬ.
попробую вот такой експеримент провести.не есть картошку месяц.ровно месяц я не должен есть картошку.вообще.нивкаком виде.
да и вообще мне пора перестать жрать.и вообще есть.есть очень мало.как бы то ни было.
Теперь по развитию:публичные выступления -0.нихуя не делал.книги- тоже 0.ничего не читал.
по дизайну хуярил это да.посмотрел джумлу.счас учу уии.в фоне пару книг читаю пола екмана и еще кого то НО пока они в фоне.тоесть открыты прочитаны пару страниц и все.
паспорт не сделал .по чп нихуя.курсы в январе пойду.что еще.вот и все по развитию.
думаю еще сделать експеримент с синим браслетом.типа никого некритиковать
Теперь вот еще задумка.Прочитаю Пола Екмана.и буду ездить в покер на кэш и наблюдать за людьми.Интересно.
По удезду за границу:вообще нихуя не делал.вообще.
По здоровью:пошел к доктору но результаты неполучил.вообще один раз сходил и все.колеса пью.
По бирже:был один день в плюс и один в минус.все.
Ну вообщем вот и все.спасибо за внимание.
Вообщем вообще то все ок.тоесть отжимаюсь каждый день.это 2 дня я специально делал отдых.
так что все окей.
По обливаниям.
Обливаюсь каждый день.не пропускаю.
По похудению.
Жру.немного вроде но жру.потолстел на 5 кг.и ахуел.какое на 5.на7 БЛЯТЬ
причем на самом деле ждрал не очень много.но вот дня 2 последние жрат и вот тебе результат.
вообщем непонимаю.у меня такой организм.2 дня жрал и потолстел на 7 кг.блять это ужас.
нужно бросить жрать.я е знаю что уже писать.мне плохо.я себя плохо чувствую когда нажрусь.плохая енергетика.плохое настроение.ОСОБЕННО.когда нажираюсь мяса с картошкой пюре и потом иду на диван спать то просыпаюсь я с УЖАСНЕЙШИМ НАСТРОЕНИЕМ.
ПРОСТО УЖАС И УБИЙСТВО.поэтомунуэно перестать ЖРАТЬЬЬЬ
у меня нет сил просто писать.я не знаю уже что писать.я отчаиваюсь.
вроде есть результаты какие то.и жру меньше.и качество пищи лучше.а все равно
поправился.все равно жрал на ноч.все равно жру мамину хуевую пищу.ВСЕ РАВНО.
все равно веду себя как зомби.все равно все идет по замкнутому кругу.ничего не изменилось.у не похудел.хотя прошло уже месяц или полтора.за такое время люди худеют на 5-10 кг легко.
а я нихуя не похудел.отсюда выводЧТО Я БЛЯТЬ БЕЗВОЛЬНЫЙ ЧЕЛОВЕК,Я ЕЩЕ НИЧЕГО НЕ СДЕЛАЛ ДЛЯ ПОХУДЕНИЯ!!!!НИЧЕГО!!!!!!!Я ТОЛЬКО ПОТОЛСТЕЛ!!!!!!БЛЯТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!И ЭТО РЕАЛЬНОСТЬ!!!!!!!!!!!хотя я и жрал меньше.и не ем жаренного и т д новсе равно я чувствую себя хуево.ВСЕ РАВНО.ПОТОМУ что Я ТОЛСТЫЙ.и немогу похудеть.хотя время идет.я не хочу худеть спортом.только диета.у меня еще не настолько все плохо.я могу перестать жрать и похудеть.я могу.я это знаю у меня всегда была сила воли.они никуда не делать.
я немного думаю что это родители пьют мою енергию.много виновата в том что я плохо ем это мама.реально.она готовит говняную пищу.а я ведусь и ем ее.ведь смотри.самосознание у меня все таки изза дневника поменялось.я стал нормально питаться когда я не дома.когда я дома я ем хуйню которую мама готовит.бывает они готовит нормально но бывает хуйню.и вроде пароварка и вроде картоха.но это пиздец.кстати нунжно перестать есть картошку.МОЖЕТ ИЗЗА НЕЕ Я ТОЛСТЕЮ.
ВОТ !!!!!!!!!!!!!!!!!!ТЕПЕРЬ ОБЬЯВЛЯЮ ВОЙНУ КАРТОШКЕБЛЯТЬ.
попробую вот такой експеримент провести.не есть картошку месяц.ровно месяц я не должен есть картошку.вообще.нивкаком виде.
да и вообще мне пора перестать жрать.и вообще есть.есть очень мало.как бы то ни было.
Теперь по развитию:публичные выступления -0.нихуя не делал.книги- тоже 0.ничего не читал.
по дизайну хуярил это да.посмотрел джумлу.счас учу уии.в фоне пару книг читаю пола екмана и еще кого то НО пока они в фоне.тоесть открыты прочитаны пару страниц и все.
паспорт не сделал .по чп нихуя.курсы в январе пойду.что еще.вот и все по развитию.
думаю еще сделать експеримент с синим браслетом.типа никого некритиковать
Теперь вот еще задумка.Прочитаю Пола Екмана.и буду ездить в покер на кэш и наблюдать за людьми.Интересно.
По удезду за границу:вообще нихуя не делал.вообще.
По здоровью:пошел к доктору но результаты неполучил.вообще один раз сходил и все.колеса пью.
По бирже:был один день в плюс и один в минус.все.
Ну вообщем вот и все.спасибо за внимание.
Ярлыки:
биржа,
заграница,
зарядка,
питание,
победить мат,
победить раздражение,
похудение,
развитие,
режим,
риторика
четверг, 27 декабря 2012 г.
пару дней ленился писать.теперь пишу.
дела неособо продвигаются.
обливаюсь.отжимаюсь.шею качаю.и все.
с утра мало ем.днем тоже.ВЕЧЕРОМ БЛЯТЬ ОТЖИРАЮСЬ.
ЖРУ ХУЙНЮ ВСЯКУЮ,СОСИСКИ КАРТОХУ ВЕРМИШЕЛЬ.ГАВНО КАРОЧЕ МАМИНО.
ОНА У МЕНЯ ХУЙНЮ ЖРЕТ И НАС КОРМИТ ДЕШЕВКОЙ.А Я БЛЯТЬ
ПРИХОЖУ ДОМОЙ И КАК ДЕБИЛ ИДУ К ХОЛОДИЛЬНИКУ И ЖРУ БЛЯТЬ ЭТУ ХУЙНЮ.ПОТОМ МНЕ ПЛОХО ХОЧУ СПАТЬ.вот гавно.
сегодня ехал домой и думал как буду жрать это говно.а нажрался.пиздец.потом лег спать потому что сил небыло.пиздец.в супермаркете днем опять купил салата вместо фруктов.хотя немного его купил но всеравно.КАКОГО ХУЯ.ПРОГРАММУ НАРУШАЮ.
СУКА ДАЮ СЕБЕ БЛЯТЬ СЛОВО.НЕ НАЖИРАТСЯ НА НОч.не есть хуйню с домащней кухни.или если есть то чуть чуть чтоб чисто желудок подбить например сутра.
вечером нихуя нежрать.там гавно одно у меня на кухне.нехдоровая пища от которой я жирею.пошла она нахуй.нужно прекращать по вечерам есть да и на ноч есть.позавчера как было хорошо.на ноч чаю попил и 2 фреша.вот прекрасно было.
а тут сегодя опять сорвался и хуйни нажрался.гавно блять.нужно прекращать на ноч есть и есть вечером всякое гавно с холодильника.я должен понять что я жру говно.какую то дохлую вермишель.какую то уставшую картоху.какое то говно мясное.мама кормит гавном.и ничего не скажешь ей.она и папу таким кормит.нужно прекращаться такое есть.да и вообще жрать нужно прекращать.это мешает течению светлых мыслей и позитиву.мясо есть вообще нельзя.и сосиски гавняные тоже.ГАВНО ГАВНО ГАВНО.САША ПЕРЕСТАНЬ ЖРАТЬ ГОВНО.сука перестань.ты ж са понимашье что ты в себя пихаешь полное гавно.салатики эти.гавняные быблики.поноснуб вермишель и гавняную подуставшую картоху.есть свежую свежеприготовленную пишу.фрукты.вареные овощи.суши.рыбу.пей чай минералку и фреши.давай.я в тебя верю.В СЕБЯ.
про зарядку.не делаю пока.думаю скоро буду делать.
про биржу.сегодня боролся но закрылся в минус.нада хотя бы +30 заработал закрывайся.с другой стороны ты ж блять хочешь побольше заработать.тогда торгую.сегодня боролся но не поборол.явных ошибок небыло.туда сюда.
Про развитие.книги читаю.джумлу смотрю.вуукоммерс.уии.по курсам после нг займус.
по развитию больше ничего.не выступаю публично.такие дела братва.
обливаюсь.отжимаюсь.шею качаю.и все.
с утра мало ем.днем тоже.ВЕЧЕРОМ БЛЯТЬ ОТЖИРАЮСЬ.
ЖРУ ХУЙНЮ ВСЯКУЮ,СОСИСКИ КАРТОХУ ВЕРМИШЕЛЬ.ГАВНО КАРОЧЕ МАМИНО.
ОНА У МЕНЯ ХУЙНЮ ЖРЕТ И НАС КОРМИТ ДЕШЕВКОЙ.А Я БЛЯТЬ
ПРИХОЖУ ДОМОЙ И КАК ДЕБИЛ ИДУ К ХОЛОДИЛЬНИКУ И ЖРУ БЛЯТЬ ЭТУ ХУЙНЮ.ПОТОМ МНЕ ПЛОХО ХОЧУ СПАТЬ.вот гавно.
сегодня ехал домой и думал как буду жрать это говно.а нажрался.пиздец.потом лег спать потому что сил небыло.пиздец.в супермаркете днем опять купил салата вместо фруктов.хотя немного его купил но всеравно.КАКОГО ХУЯ.ПРОГРАММУ НАРУШАЮ.
СУКА ДАЮ СЕБЕ БЛЯТЬ СЛОВО.НЕ НАЖИРАТСЯ НА НОч.не есть хуйню с домащней кухни.или если есть то чуть чуть чтоб чисто желудок подбить например сутра.
вечером нихуя нежрать.там гавно одно у меня на кухне.нехдоровая пища от которой я жирею.пошла она нахуй.нужно прекращать по вечерам есть да и на ноч есть.позавчера как было хорошо.на ноч чаю попил и 2 фреша.вот прекрасно было.
а тут сегодя опять сорвался и хуйни нажрался.гавно блять.нужно прекращать на ноч есть и есть вечером всякое гавно с холодильника.я должен понять что я жру говно.какую то дохлую вермишель.какую то уставшую картоху.какое то говно мясное.мама кормит гавном.и ничего не скажешь ей.она и папу таким кормит.нужно прекращаться такое есть.да и вообще жрать нужно прекращать.это мешает течению светлых мыслей и позитиву.мясо есть вообще нельзя.и сосиски гавняные тоже.ГАВНО ГАВНО ГАВНО.САША ПЕРЕСТАНЬ ЖРАТЬ ГОВНО.сука перестань.ты ж са понимашье что ты в себя пихаешь полное гавно.салатики эти.гавняные быблики.поноснуб вермишель и гавняную подуставшую картоху.есть свежую свежеприготовленную пишу.фрукты.вареные овощи.суши.рыбу.пей чай минералку и фреши.давай.я в тебя верю.В СЕБЯ.
про зарядку.не делаю пока.думаю скоро буду делать.
про биржу.сегодня боролся но закрылся в минус.нада хотя бы +30 заработал закрывайся.с другой стороны ты ж блять хочешь побольше заработать.тогда торгую.сегодня боролся но не поборол.явных ошибок небыло.туда сюда.
Про развитие.книги читаю.джумлу смотрю.вуукоммерс.уии.по курсам после нг займус.
по развитию больше ничего.не выступаю публично.такие дела братва.
понедельник, 24 декабря 2012 г.
БЛЯЯЯЯЯТЬ.НУ ПОЧЕМУ БЛЯТЬ Я ТАКОЙ РАССЕЯННЫЙ
это просто пиздец.взял акцию в лонг.все ок пошла.я еще добрал.не на пробиве а перед ним.она упала и вынесла мне БАЗУ.БЛЯТЬ А ПОТОМ ПОШЛА КАК НУЖНО.КАКОГО ХУЯ Я БЛЯТЬ КУПИЛ ЕЩЕ 100????БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯТЬ.ОПЯТЬ ВЫНЕС базу -54.блять.я тупой вася.это просто пиздец.
ПРОСТО ХУЕЮ С СЕБЯ.ПРОООСТО.НЕВНИМАТЕЛЬНОСТЬ РАССЕЯННОСТЬ ВСЕ БЬЕТ.ВСЕ БЛЯТЬ.ЖАДНОСТЬ.ПОДКУПИЛСЯ БЛЯТЬ.ТВОЮ ж мать.
ПРОСТО ХУЕЮ С СЕБЯ.ПРОООСТО.НЕВНИМАТЕЛЬНОСТЬ РАССЕЯННОСТЬ ВСЕ БЬЕТ.ВСЕ БЛЯТЬ.ЖАДНОСТЬ.ПОДКУПИЛСЯ БЛЯТЬ.ТВОЮ ж мать.
по поводу развития!
ну на программирование пойду это понятно.
по поводу риторики я никака не репетирую.это плохо.
по поводу других курсов.
нужно идти на НЛП и П.обязательно до мая сходить!
выучить уии и сделать приложение.еще сегодня сделать на джумле и посмотреть
виртуемарт.
НУЖНО СДЕЛАТЬ ПАСПОРТ И ЧП.НУЖНО УЧИТЬ ПОЛЬСКИЙ!!!ЭТО ТОЖЕ НУЖНО ОЧЕНЬ!!!впринципи все.
по поводу риторики я никака не репетирую.это плохо.
по поводу других курсов.
нужно идти на НЛП и П.обязательно до мая сходить!
выучить уии и сделать приложение.еще сегодня сделать на джумле и посмотреть
виртуемарт.
НУЖНО СДЕЛАТЬ ПАСПОРТ И ЧП.НУЖНО УЧИТЬ ПОЛЬСКИЙ!!!ЭТО ТОЖЕ НУЖНО ОЧЕНЬ!!!впринципи все.
чо как
вообем отжимаюсь.качал сегодня шею.обливаюсь регулярно.это идет.
это очень жизненно важно для меня и для моего нормального самочувствия.без обливаний я не буду чувствовать себя таким бодрым и жизнерадостным.кроме того обливания помогают мне проснуться и почувствовать себя бодрым и счастливым.И ГЛАВНОЕ.они помогают мне себя чувствовать хорошо.если что.как бы меньше вероятность что мне стает плохо.может мне вообще не станет плохо но мало ли.
Отжимания пошли.хорошо отжимаюсь каждый день.прорельефилась грудь.стала шире рама.правда по количеству мало идет но ничего.все ок.
КСТАТИ.сегодня взвеился.103 ЕБА.пошло вниз уже.нужна соточка.
а там дальше вниз пойдет.когда бокс темболее.
ПО ПОВОДУ ХАВКИ:
тут сложно.вроде хаваю меньше.сутра мало ем.вобед все ок.
тоже мало .
ПРОБЛЕМА С УЖИНОМ!!!!!!!!!!!!!!!!!
вроде на ноч меньше есьб стал.тоесть вообще очень мало.
НО ВСЕ РАВНО Я ВЫХОДИЛ НА КУХНЮ СЕГОДНЯ НОЧЬЮ И СОЖРАЛ ОДНУ СОСИСКУ!!!!!!!!БЛЯТЬ!!!!ЭТО ОЧЕНЬ ВРЕДНО И НЕ НУЖНО МНЕ.
диета превратит меня в худенького спортивного парня,а главное в ЗДОРОВОГО ЧЕЛОВЕКА.у которого нет подкожного жира,а главное жира на внутренних органах!!!!!!
Диета это здоровье а недиета это смерть!!!СМЕРТЬ!!!!!
мне нужно есть очень маленькими порциями.мало и только диетическую пищу!!!!!И ВСЕ!!!
ТРИ(3) месяца и я впоряде блять!!!!!!!!!!!!У МЕНЯ ВСЕ ОК!!!Я ХУДЕНЬКИЙ!!!!!!!!!!!
при этом я на 5 кило похудел наминуточку.еще месяц или два и я буду девяносто ТРИ!!!!БЛЯТЬ!!!
потом пару месяцев выхода из диеты и все ок!!!ВСЕ ОКЕЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!
нужно только соблюдать диету!!!
ГЛАВНОЕ ПРАВИЛО!!!НЕ ЕСТЬ ПОСЛЕ 6!!!НЕ ЕСТЬ НА НОЧ!!!! ЕСТЬ ТОЛЬКО ВАРЕНУЮ ИЛИ СЫРУЮ ПИЩУ!!!!
СЫРЫЕ ФРУКТЫ!!!!вареную картоху гречку!!!!злеб но мало!!!!!НА НЧО ЕСТЬ НЕЛЬЗЯ ВООБЩЕ!!!!!
еще нужна штанга спортзал или же делать 5 тибетских жемчужин!!!!!
ЛУЧШЕ ПОСЛЕДНЕЕ!!!!!!!
нужно себе сделать отдельную заметку на них!!!!
это очень жизненно важно для меня и для моего нормального самочувствия.без обливаний я не буду чувствовать себя таким бодрым и жизнерадостным.кроме того обливания помогают мне проснуться и почувствовать себя бодрым и счастливым.И ГЛАВНОЕ.они помогают мне себя чувствовать хорошо.если что.как бы меньше вероятность что мне стает плохо.может мне вообще не станет плохо но мало ли.
Отжимания пошли.хорошо отжимаюсь каждый день.прорельефилась грудь.стала шире рама.правда по количеству мало идет но ничего.все ок.
КСТАТИ.сегодня взвеился.103 ЕБА.пошло вниз уже.нужна соточка.
а там дальше вниз пойдет.когда бокс темболее.
ПО ПОВОДУ ХАВКИ:
тут сложно.вроде хаваю меньше.сутра мало ем.вобед все ок.
тоже мало .
ПРОБЛЕМА С УЖИНОМ!!!!!!!!!!!!!!!!!
вроде на ноч меньше есьб стал.тоесть вообще очень мало.
НО ВСЕ РАВНО Я ВЫХОДИЛ НА КУХНЮ СЕГОДНЯ НОЧЬЮ И СОЖРАЛ ОДНУ СОСИСКУ!!!!!!!!БЛЯТЬ!!!!ЭТО ОЧЕНЬ ВРЕДНО И НЕ НУЖНО МНЕ.
диета превратит меня в худенького спортивного парня,а главное в ЗДОРОВОГО ЧЕЛОВЕКА.у которого нет подкожного жира,а главное жира на внутренних органах!!!!!!
Диета это здоровье а недиета это смерть!!!СМЕРТЬ!!!!!
мне нужно есть очень маленькими порциями.мало и только диетическую пищу!!!!!И ВСЕ!!!
ТРИ(3) месяца и я впоряде блять!!!!!!!!!!!!У МЕНЯ ВСЕ ОК!!!Я ХУДЕНЬКИЙ!!!!!!!!!!!
при этом я на 5 кило похудел наминуточку.еще месяц или два и я буду девяносто ТРИ!!!!БЛЯТЬ!!!
потом пару месяцев выхода из диеты и все ок!!!ВСЕ ОКЕЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!
нужно только соблюдать диету!!!
ГЛАВНОЕ ПРАВИЛО!!!НЕ ЕСТЬ ПОСЛЕ 6!!!НЕ ЕСТЬ НА НОЧ!!!! ЕСТЬ ТОЛЬКО ВАРЕНУЮ ИЛИ СЫРУЮ ПИЩУ!!!!
СЫРЫЕ ФРУКТЫ!!!!вареную картоху гречку!!!!злеб но мало!!!!!НА НЧО ЕСТЬ НЕЛЬЗЯ ВООБЩЕ!!!!!
еще нужна штанга спортзал или же делать 5 тибетских жемчужин!!!!!
ЛУЧШЕ ПОСЛЕДНЕЕ!!!!!!!
нужно себе сделать отдельную заметку на них!!!!
пятница, 21 декабря 2012 г.
уиии
Едем дальше:
Модель
Модель (model) — это экземпляр класса CModel или класса, унаследованного от него. Модель используется для хранения данных и применимых к ним бизнес-правил.
Модель представляет собой отдельный объект данных. Это может быть запись таблицы базы данных или HTML-форма с полями для ввода данных. Каждое поле объекта данных представляется атрибутом модели. Каждый атрибут имеет текстовую метку и может быть проверен на корректность, используя набор правил.
Yii предоставляет два типа моделей: модель формы и Active Record. Оба типа являются наследниками базового класса CModel.
Модель формы — это экземпляр класса CFormModel. Она используется для хранения данных, введённых пользователем. Как правило, мы получаем эти данные, обрабатываем, а затем избавляемся от них. Например, на странице авторизации модель такого типа может быть использована для представления информации об имени пользователя и пароле. Подробное описание работы с формами приведено в разделе Работа с формами.
Active Record (AR) — это шаблон проектирования, используемый для абстрагирования доступа к базе данных в объектно-ориентированной форме. Каждый объект AR является экземпляром класса CActiveRecord или класса, унаследованного от него, и представляет отдельную строку в таблице базы данных. Поля этой строки соответствуют свойствам AR-объекта. Подробнее с AR-моделью можно ознакомиться в разделе Active Record
ну про модель понятно.одна работает с формами и введенными данными
вторая какой то шаблон там дальше посмотрю
Дальше:
Представление — это PHP-скрипт, состоящий преимущественно из элементов пользовательского интерфейса. Он может включать выражения PHP, однако рекомендуется, чтобы эти выражения не изменяли данные и оставались относительно простыми. Следуя концепции разделения логики и представления, большая часть кода логики должна быть помещена в контроллер или модель, а не в скрипт представления.
АГА тут все оказывается нечетко.большая часть в модель.но все таки что то можно и во вьюху загнать
смотрим дальше
У представления есть имя, которое используется, чтобы идентифицировать файл скрипта представления в процессе рендеринга. Имя представления должно совпадать с названием файла представления. К примеру, для представления edit соответствующий файл скрипта должен называться edit.php. Чтобы отобразить представление, необходимо вызвать метод CController::render(), указав имя представления. При этом метод попытается найти соответствующий файл в директории protected/views/ControllerID.
ну тут понятно.нужно отрендерить.
это ясно.
Внутри скрипта представления экземпляр контроллера доступен через $this. Таким образом, мы можем обратиться к свойству контроллера из кода представления: $this->propertyName.Ага.ну это понятно
Кроме того, мы можем использовать следующий способ для передачи данных представлению:
$this->render('edit', array(
'var1'=>$value1,
'var2'=>$value2,
));
В приведённом коде метод render() преобразует второй параметр — массив — в переменные. Как результат, внутри представления будут доступны локальные переменные $var1 и $var2
ну это я так понимаю реч идет о том как из контроллера передать(хотя блять какого тут this,непонятно).ладна.узнаем.
Макет (layout) — это специальное представление для декорирования других представлений. Макет обычно содержит части пользовательского интерфейса, общие для нескольких представлений. Например, макет может содержать верхнюю и нижнюю части страницы, заключая между ними содержание другого представления:
…здесь верхняя часть…
<?php echo $content; ?>
…здесь нижняя…
Здесь $content хранит результат рендеринга представления.
Макет применяется неявно при вызове метода render(). По умолчанию в качестве макета используется представление protected/views/layouts/main.php. Его можно изменить путём установки значений CWebApplication::layout или CController::layout. Для рендеринга представления без применения макета необходимо вызвать renderPartial().Ну как бы мне это нужно было.Но на практике посмотрим как оно работает.
Виждеты:
Виджет
Виджет (widget) — это экземпляр класса CWidget или унаследованного от него. Это компонент, применяемый, в основном, с целью оформления. Виджеты обычно встраиваются в представления для формирования некоторой сложной, но в то же время самостоятельной части пользовательского интерфейса. К примеру, виджет календаря может быть использован для рендеринга сложного интерфейса календаря. Виджеты позволяют повторно использовать код пользовательского интерфейса.
Для подключения виджета необходимо выполнить в коде:
<?php $this->beginWidget('path.to.WidgetClass'); ?>
…некое содержимое, которое может быть использовано виджетом…
<?php $this->endWidget(); ?>
или
<?php $this->widget('path.to.WidgetClass'); ?>
Последний вариант используется, когда виджет не имеет внутреннего содержимого.
Компонент
Yii-приложения состоят из компонентов–объектов, созданных согласно спецификациям. Компонент (component) — это экземпляр класса CComponent или производного от него. Использование компонента, как правило, включает доступ к его свойствам, а также вызов и обработку его событий. Базовый класс CComponent устанавливает правила, согласно которым определяются свойства и события.
Свойство компонента
Свойство компонента схоже с открытой переменной-членом класса (public member variable). Мы можем читать или устанавливать его значение. Например:
$width=$component->textWidth; // получаем значение свойства textWidth
$component->enableCaching=true; // устанавливаем значение свойства enableCaching
Для того чтобы создать свойство компонента, достаточно объявить открытую переменную-член в классе компонента. Более гибкий вариант — определить методы, считывающие (getter) и записывающие (setter) значение этой переменной, например:
public function getTextWidth()
{
return $this->_textWidth;
}
public function setTextWidth($value)
{
$this->_textWidth=$value;
}
В приведённом коде определено свойство textWidth (имя не чувствительно к регистру), доступное для записи.
При обращении к свойству вызывается метод чтения getTextWidth(), возвращающий значение свойства. Соответственно, при присвоении значения свойству будет вызван метод записи setTextWidth(). Если метод записи не определён, то свойство будет доступно только для чтения, а при попытке записи будет выброшено исключение. Использование методов чтения и записи имеет дополнительное преимущество: при чтении или записи значения свойства могут быть выполнены дополнительные действия (такие как проверка на корректность, вызов события и др.).
События компонента
События компонента — это специальные свойства, в качестве значений которых выступают методы (называемые обработчиками событий). Назначение метода событию приведет к тому, что метод будет вызван автоматически при возникновении этого события. Поэтому поведение компонента может быть изменено совершенно отлично от закладываемого при разработке.
Событие компонента объявляется путём создания метода с именем, начинающимся на on. Так же как и имена свойств, заданных через методы чтения и записи, имена событий не чувствительны к регистру. Следующий код объявляет событие onClicked:
public function onClicked($event)
{
$this->raiseEvent('onClicked', $event);
}
где $event — это экземпляр класса CEvent или производного от него, представляющего параметр события. К событию можно подключить обработчик как показано ниже:
$component->onClicked=$callback;
где $callback — это корректный callback-вызов PHP (см. PHP-функцию call_user_func). Это может быть либо глобальная функция, либо метод класса. В последнем случае вызову должен передаваться массив: array($object,'methodName').
Обработчик события должен быть определён следующим образом:
function methodName($event)
{
…
}
где $event — это параметр, описывающий событие (передаётся методом raiseEvent()). Параметр $event — это экземпляр класса CEvent или его производного. Как минимум, он содержит информацию о том, кто вызвал событие.
Обработчик события может быть анонимной функцией, требующей наличия версии PHP 5.3+. Например,
$component->onClicked=function($event) {
…
}
Если теперь использовать метод onClicked(), то в нём будет вызвано событие onClicked. Назначенный ему обработчик будет запущен автоматически.
Событию могут быть назначены несколько обработчиков. При возникновении события обработчики будут вызваны в порядке их назначения. Если в обработчике необходимо предотвратить вызов последующих обработчиков, необходимо установить $event->handled в true.
ну про компонент я понял.толька как его использовать неясно.будем читать дальше
ПОЧЕМУ Я ДОЛЖЕН РАНО ВСТАВАТЬ И ЛОЖИТСЯ
кстати у меня уже стало немного получаться.я сразу по приходу домой делаю дела и невишу долго на ноуте а ложусь спать.
МНЕ НУЖНО РАНО ВСТАВАТЬ.ЖИЗНЕНО НЕОБХОДИМО.ПОТОМУ КАК ЕСЛИ Я ВСТАЮ ПОЗДНО Я НЕУСПЕВАЮ РАСКАЧАТЬСЯ ДЛЯ МОИХ ДЕЛ.
нужно закрыть чп.сделать загран.я уже это все делать больше чем пол года хотя бы уже давно сделал и легко.НУЖНО ЭТО СДЕЛАТЬ.НЕ ЗАБИВАТЬ!!!!!!!!!!!!!!!!А ТО БУДЕТ ПИЗДЕЦ,ДИКАЯ ЛЕНЬ!!!!!!!!!!!
Я БУДУ ДЕЛАТЬ ТО ЧТО НУЖНО НЕСМОТРЯ НИ НА ЧТОООО!!!!!!!!!!
что по развитию.
нужно читать книги.пару раз делал 30 сек презентацию.вроде получилось.пару раз поздравлял людей.тоже ничего.осталось пару книжек дочитать.и практиковаться.вот и все.
по программированию курсы в январе и учу уии.
но главное это поделать дела.похудеть.вылечится.и уехать заграницу.!!!!!
МНЕ НУЖНО РАНО ВСТАВАТЬ.ЖИЗНЕНО НЕОБХОДИМО.ПОТОМУ КАК ЕСЛИ Я ВСТАЮ ПОЗДНО Я НЕУСПЕВАЮ РАСКАЧАТЬСЯ ДЛЯ МОИХ ДЕЛ.
нужно закрыть чп.сделать загран.я уже это все делать больше чем пол года хотя бы уже давно сделал и легко.НУЖНО ЭТО СДЕЛАТЬ.НЕ ЗАБИВАТЬ!!!!!!!!!!!!!!!!А ТО БУДЕТ ПИЗДЕЦ,ДИКАЯ ЛЕНЬ!!!!!!!!!!!
Я БУДУ ДЕЛАТЬ ТО ЧТО НУЖНО НЕСМОТРЯ НИ НА ЧТОООО!!!!!!!!!!
что по развитию.
нужно читать книги.пару раз делал 30 сек презентацию.вроде получилось.пару раз поздравлял людей.тоже ничего.осталось пару книжек дочитать.и практиковаться.вот и все.
по программированию курсы в январе и учу уии.
но главное это поделать дела.похудеть.вылечится.и уехать заграницу.!!!!!
что вчера
вчера с утра мало хавал.все окей.
потом в обед тоже ок.на ужин ок.Я НОЧЬЮ НАЖРАЛСЯ СОСИСОК.
КАКОГО ХУЯ НЕПОЙМУ.ВОТ НЕ МОГУ Я ПЕРЕДАВАТЬ СВОИ ОЩУЩЕНИЯ В ЭТОТ МОМЕНТ.ИХ КАКА БУДТО И НЕТ!!!!!!!!!!!!!!!
ПРОСТО БЕЗДУМНЫЙ ИНСТИНКТ.САША когда ты только вечером или ночью подойдешь к холодильнику вспомни что тебе жизнено важно не есть на ноч.а также сидеть на диете не есть жирного сладкого и т д.
ПРОСТО НУЖНО ЧТОБ ВОЗНИКЛИ МЫСЛИ ОБ ЭТОМ КАКТОЛЬКО ТЫ НА АВТОМАТЕ ПОДХОДИШЬ К ХОЛОДИЛЬНИКУ И КАК ЗОМБИ ИЩЕШЬ ЧТО ПОЖРАТЬ.НЕЛЬЗЯ ЖРАТЬ НА НОЧ.ТЕМ БОЛЕЕ ХОЛОДНЫЕ СОСИСКИ.МРАК.ЖИРНЫЙ САЛАТ С МАЙОНЕЗОМ.УЖАСССССС.
потом мне болел живот и булькал.это организм давал мне знаки того что я очень плохо сделал что поел такого говна да еще и на ноч.мрак.
с утра мрачное состояние было.тяжесть.ленивость.кароче ниче хорошего.
вообщем так вот .
МНЕ НЕЛЬЗЯ ЕСТЬ МНОГО.МНЕ НЕЛЬЗЯ ЕСТЬ ЖИРНОГО СЛАДКОГО ЖАРЕННОГО.МНЕ ОТ ЭТОГО ПЛОХО.Я ОТ ЭТОГО УМРУ.НУЖНО ПРАВИЛЬНО И ДИЕТИЧЕСКИ ПИТАТЬСЯ.ТОГДА Я БУДУ ЖИТЬ!!!!!!!нужно помнить об этом.в этом моя жизнь.здоровое диетическое питание.и его должно быть очень мало.ОЧЕНЬ МАЛО.
ИЛИ Я УМРУ.ЭТО ТОЧНО.
кроме того мне от этого очень плохо.я покрыт жиром.и если я не буду питаться диетически,мало и правильно то он с меня не слезет и будет на мне всю мою жизнь.а я этого не хочу.потому как изза этого мне отказывают.со всех сторон.3 месяца мегадиеты и я строен и здоров.нужно держаться и тогда все будет хорошо и будет так как ты задумал.
И НЕ ЕСТЬ МЯСА!!!!ВООБЩЕ!!!!
потом в обед тоже ок.на ужин ок.Я НОЧЬЮ НАЖРАЛСЯ СОСИСОК.
КАКОГО ХУЯ НЕПОЙМУ.ВОТ НЕ МОГУ Я ПЕРЕДАВАТЬ СВОИ ОЩУЩЕНИЯ В ЭТОТ МОМЕНТ.ИХ КАКА БУДТО И НЕТ!!!!!!!!!!!!!!!
ПРОСТО БЕЗДУМНЫЙ ИНСТИНКТ.САША когда ты только вечером или ночью подойдешь к холодильнику вспомни что тебе жизнено важно не есть на ноч.а также сидеть на диете не есть жирного сладкого и т д.
ПРОСТО НУЖНО ЧТОБ ВОЗНИКЛИ МЫСЛИ ОБ ЭТОМ КАКТОЛЬКО ТЫ НА АВТОМАТЕ ПОДХОДИШЬ К ХОЛОДИЛЬНИКУ И КАК ЗОМБИ ИЩЕШЬ ЧТО ПОЖРАТЬ.НЕЛЬЗЯ ЖРАТЬ НА НОЧ.ТЕМ БОЛЕЕ ХОЛОДНЫЕ СОСИСКИ.МРАК.ЖИРНЫЙ САЛАТ С МАЙОНЕЗОМ.УЖАСССССС.
потом мне болел живот и булькал.это организм давал мне знаки того что я очень плохо сделал что поел такого говна да еще и на ноч.мрак.
с утра мрачное состояние было.тяжесть.ленивость.кароче ниче хорошего.
вообщем так вот .
МНЕ НЕЛЬЗЯ ЕСТЬ МНОГО.МНЕ НЕЛЬЗЯ ЕСТЬ ЖИРНОГО СЛАДКОГО ЖАРЕННОГО.МНЕ ОТ ЭТОГО ПЛОХО.Я ОТ ЭТОГО УМРУ.НУЖНО ПРАВИЛЬНО И ДИЕТИЧЕСКИ ПИТАТЬСЯ.ТОГДА Я БУДУ ЖИТЬ!!!!!!!нужно помнить об этом.в этом моя жизнь.здоровое диетическое питание.и его должно быть очень мало.ОЧЕНЬ МАЛО.
ИЛИ Я УМРУ.ЭТО ТОЧНО.
кроме того мне от этого очень плохо.я покрыт жиром.и если я не буду питаться диетически,мало и правильно то он с меня не слезет и будет на мне всю мою жизнь.а я этого не хочу.потому как изза этого мне отказывают.со всех сторон.3 месяца мегадиеты и я строен и здоров.нужно держаться и тогда все будет хорошо и будет так как ты задумал.
И НЕ ЕСТЬ МЯСА!!!!ВООБЩЕ!!!!
че сегодня.
повстал в акцию под уровнем.она упала.под уровень.МОЙ НЕДОСТАТОК.
Я НАЧИНАЮ СТАНОВИТСЯ ПОД АКЦИЮ ПОД УРОВНЕМ.ВОЗЛЕ УРОВНЯ ПРЯМ.И ПОЛУЧАЮ УБЫТОК.
тоесть нужно или становится за 5-10 центов до уровня.или уже закупаться на закрепленном уровне(обьеме).и все.больше ничего.а я вхожу под пробитие уровня а оно под ним туда сюда и
по итогу меня выкидывает в минус.сегодня минус 40 .досвидос.
Я НАЧИНАЮ СТАНОВИТСЯ ПОД АКЦИЮ ПОД УРОВНЕМ.ВОЗЛЕ УРОВНЯ ПРЯМ.И ПОЛУЧАЮ УБЫТОК.
тоесть нужно или становится за 5-10 центов до уровня.или уже закупаться на закрепленном уровне(обьеме).и все.больше ничего.а я вхожу под пробитие уровня а оно под ним туда сюда и
по итогу меня выкидывает в минус.сегодня минус 40 .досвидос.
четверг, 20 декабря 2012 г.
черкаяю перед сном
что сегодня.сутра сделал дел.сходил к одному врачу.облился.на работе не переедал.учил уии.потом торговал.отрепетировал риторику.вечером отжался.все окей.А ПОТОТМ БЛЯТЬ НА вечер наелся запеканки.пиздец.так все ок только запеканка не в тему.я давад же себе слово.нужно его держать.не есть на ноч.и есть мало вечером.а я все равно ем.захожу на кухню.есть не хочу.берет рука или это я я не знаю уже кто.беру и ем.невключая мозги.как будто это и не я.нужно быть осознаным каждый момент.и когда ты хочешь что то пожрать включай свою осознанность.помни о своих целях и обещания.держить.будь сильным и через 3 месяца ты будешь красавчик.
среда, 19 декабря 2012 г.
БИРЖАААААААААААААААААААААА
ОПЯТЬ ПОТЕРЯ.ТЕПЕРЬ СТОПЫ СТАВИЛ ВСЕ ОК.ТОЛЬКО БЛЯТЬ ОПЯТЬ НА ЭТОЙ ГМЦР ПОТЕРЯЛ 30 бачей!!!!30 БЛЯТЬ!!!!
И ОПЯТЬ ПОДКУПИЛ Внадежде на разворот!!!!!!!!!!!!БЛЯТЬ НУ КАКОГО.и еще вначале прибыль была.ТАК Я ЕЕ НЕМОГ СНЯТЬ НЕДАВАЛО ИЗЗА СТОПОВ ПОТОМУ КАК СТОПЫ ТОЖЕ СЧИТАЮТСЯ ПРИКАЗАМИ.СУКААААААААААААААААААААААААААААААА!!!!!!!!!!!!!!!!!!!!
ОПЯТЬ ПРОЕБ!!!НУ НИЧЕГО.Я ЕЩЕ ЗА ВСЕ ОТОРВУСЬ!!!!! СКОООРО БЛЯТЬ
Я ЧЕЛОВЕК КОТОРЫЙ ВИЖУ СВОЙ ПУТЬ.Я БУДУ РВАТЬ НО Я БУДУ ЗАРАБАТЫВАТЬ.ЭТО МОЯ БЛИЖАЙШАЯ ЦЕЛЬ!!!
итак сегодня опять -42.
у меня осталось 650 бачей.это пиздецки как мало.
но в след месяце я подброшу
.блять конечно неприятно ебать его всраку.5 день немогу заработать.ну ебать колотить.
нужно увеличить кол--во акция.хотя бы на 300.
И ОПЯТЬ ПОДКУПИЛ Внадежде на разворот!!!!!!!!!!!!БЛЯТЬ НУ КАКОГО.и еще вначале прибыль была.ТАК Я ЕЕ НЕМОГ СНЯТЬ НЕДАВАЛО ИЗЗА СТОПОВ ПОТОМУ КАК СТОПЫ ТОЖЕ СЧИТАЮТСЯ ПРИКАЗАМИ.СУКААААААААААААААААААААААААААААААА!!!!!!!!!!!!!!!!!!!!
ОПЯТЬ ПРОЕБ!!!НУ НИЧЕГО.Я ЕЩЕ ЗА ВСЕ ОТОРВУСЬ!!!!! СКОООРО БЛЯТЬ
Я ЧЕЛОВЕК КОТОРЫЙ ВИЖУ СВОЙ ПУТЬ.Я БУДУ РВАТЬ НО Я БУДУ ЗАРАБАТЫВАТЬ.ЭТО МОЯ БЛИЖАЙШАЯ ЦЕЛЬ!!!
итак сегодня опять -42.
у меня осталось 650 бачей.это пиздецки как мало.
но в след месяце я подброшу
.блять конечно неприятно ебать его всраку.5 день немогу заработать.ну ебать колотить.
нужно увеличить кол--во акция.хотя бы на 300.
вторник, 18 декабря 2012 г.
уиуи уии)
поехали дальше
Фильтры:
Фильтры запускаются в том порядке, в котором они указаны в списке фильтров, при этом фильтр может предотвратить выполнение действия и следующих за ним фильтров.
Фильтр может быть определён как метод класса контроллера. Имя метода должно начинаться на filter. Например, метод filterAccessControl определяет фильтр accessControl. Метод фильтра должен выглядеть так:
public function filterAccessControl($filterChain)
{
// для выполнения последующих фильтров и выполнения действия вызовите метод $filterChain->run()
}
ВОТ ТУТ НУЖНО ВЧИТАТЬСЯ
$filterChain это список последующих фильтров тоесть после выполнения того что в скобках(можно не доконца) мы может вызвать $filterChain->run() и выполнится фильтр в списке $filterChain(наверное они поочереди выполняются хз)
Таак.тут непонятно
кароче тут я непонял но поехали дальше
ну тут примерно понятно.как дойдет до практики посмотрим.
Фильтры:
Фильтры запускаются в том порядке, в котором они указаны в списке фильтров, при этом фильтр может предотвратить выполнение действия и следующих за ним фильтров.
Фильтр может быть определён как метод класса контроллера. Имя метода должно начинаться на filter. Например, метод filterAccessControl определяет фильтр accessControl. Метод фильтра должен выглядеть так:
public function filterAccessControl($filterChain)
{
// для выполнения последующих фильтров и выполнения действия вызовите метод $filterChain->run()
}
ВОТ ТУТ НУЖНО ВЧИТАТЬСЯ
$filterChain это список последующих фильтров тоесть после выполнения того что в скобках(можно не доконца) мы может вызвать $filterChain->run() и выполнится фильтр в списке $filterChain(наверное они поочереди выполняются хз)
где $filterChain — экземпляр класса CFilterChain, представляющего собой список фильтров, ассоциированных с запрошенным действием.
Таак.тут непонятно
В коде фильтра можно вызвать $filterChain->run() для того, чтобы продолжить выполнение последующих фильтров и действия.
Фильтр также может быть экземпляром класса CFilter или его производного. Следующий код определяет новый класс фильтра:
class PerformanceFilter extends CFilter
{
protected function preFilter($filterChain)
{
// код, выполняемый до выполнения действия
return true; // false — для случая, когда действие не должно быть выполнено
}
protected function postFilter($filterChain)
{
// код, выполняемый после выполнения действия
}
}ну я понял что в коде можно вызвать.типа если ок то пошли дальше и вызываем ран()
кароче тут я непонял но поехали дальше
Для того чтобы применить фильтр к действию, необходимо переопределить метод CController::filters(), возвращающий массив конфигураций фильтров. Например:
class PostController extends CController
{
…
public function filters()
{
return array(
'postOnly + edit, create',
array(
'application.filters.PerformanceFilter - edit, create',
'unit'=>'second',
),
);
}
}
Данный код определяет два фильтра: postOnly и PerformanceFilter. Фильтр postOnly задан как метод (соответствующий метод уже определен в CController), в то время как PerformanceFilter — фильтр на базе класса. Псевдоним application.filters.PerformanceFilter указывает на файл класса фильтра — protected/filters/PerformanceFilter. Для конфигурации PerformanceFilter используется массив, что позволяет задать начальные значения свойств фильтра. В данном случае свойство unit фильтра PerformanceFilter будет инициализировано значением 'second'.
Используя операторы '+' и '-' можно указать, к каким действиям должен и не должен быть применён фильтр. В приведённом примере postOnly будет применён к действиям edit и create, а PerformanceFilter — ко всем действиям, кроме edit и create. Если операторы '+' и '-' не указаны, фильтр будет применён ко всем действиям.
ну тут примерно понятно.как дойдет до практики посмотрим.
уии уии)))
Кароче там.осносной скелет шаблона хтмп (для дефолтной конфы уии,тоесть контроллера site)
лежит в D:\wamp\www\yiitrener\protected\views\layouts\main.php
а внутрь страницы генерится D:\wamp\www\yiitrener\protected\views\site\index.php типа страница индекс
Это все генерится потому что контроллер сайт D:\wamp\www\yiitrener\protected\controllers\SiteController.php внутри имеет
/**
* This is the default 'index' action that is invoked
* when an action is not explicitly requested by users.
*/
public function actionIndex()
{
// renders the view file 'protected/views/site/index.php'
// using the default layout 'protected/views/layouts/main.php'
$this->render('index');
}
такой вот екшн а все это генерится потому что вы поняли.когда заходишь на сайт
то первый запрос http://localhost/mysite/index.php?r=site/index
site/index вот эта тема в запросе называется маршрут.он типа и определяет какой какой контроллер и действие будет выполняться
ВТОРОЕ:
когда генерирую модель User (это на сайте в руководстве "создаем первое приложение")с помощю ГИИ на таблицу tbl_user дефолтную где висят айдишки парли и емейлы
ТО ГРУБО ГОВОРЯ МОДЕЛЬ ЯВЛЯЕТСЯ ВЮХОЙ НА ЭТУ ТАБЛИЦУ!!!!!!
Теперь еще
когда я генерирую КРУД то я сразу генерю и контроллер и вьюху
.ща посмотрю как это работает
Generating code using template "D:\wamp\www\trener\framework\gii\generators\crud\templates\default"...
generated controllers\UserController.php
generated views\user\_form.php
generated views\user\_search.php
generated views\user\_view.php
generated views\user\admin.php
generated views\user\create.php
generated views\user\index.php
generated views\user\update.php
generated views\user\view.php
done!
Вообщем на модель сгенерило контроллер одноименный а вот контроллер ИД я сгенерил юзер с маленькой буквы и создало вьюхи на основе его(а сам контроллер я так понял привязался с имени модели(тоесть Юзер с большой буквы)
http://localhost/yiitrener/index.php?r=user
и потом я перехожу по этой ссылка (получается роут на контроллер только(все таки с маленькой получается это только егенерится в файлах с большой контроллер а имя его маленькое на самом деле)
и мне выводит контроллер на чтение всю таблицу.
но когда хочешь редактить по нужно авторицироваться
такие дела
АГА получается в базовом лейауте двухполосная модель
.зашел в D:\wamp\www\yiitrener\protected\controllers\UserController.php
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
'postOnly + delete', // we only allow deletion via POST request
);
}
сразу смотрим что там подключаются фильтры один из них ассесс контрол
я взял да убрал его.просто удалил.обновил страницу и смог редактировать.
УЖЕ ИНТЕРЕСНЕЕ.НАЧИНАЮ ПОНИМАТЬ.тоесть к контроллеру можно подрубать фильтры авторизации и т д
Идем дальше
дальеш в контроллере вот такое
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view'),
'users'=>array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('create','update'),
'users'=>array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('admin','delete'),
'users'=>array('admin'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
ну тут права идут.более ли менее понятно
дальше идет вот что(это вс е в контроллере)
public function actionView($id)
{
$this->render('view',array(
'model'=>$this->loadModel($id),
));
}
АГА.вот начинают описываться екшны описанные выше(например
allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view'),
ВОТ он и вью)
тоесть я так понимаю в этой функции екшнвью он рендерит
вьюшку по этому екшну(только вот вроде указана модель.немного непонимаю this
Псевдо-переменная $this доступна в том случае, если метод был вызван в контексте объекта. $this является ссылкой на вызываемый объект. Обычно это тот объект, которому принадлежит вызванный метод
БЛЯТЬ все равно непонимаю откуда берется название модели.ладна то такое
пойдем дальше
public function actionCreate()
{
$model=new User;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['User']))
{
$model->attributes=$_POST['User'];
if($model->save())
$this->redirect(array('view','id'=>$model->id));
}
$this->render('create',array(
'model'=>$model,
));
}
вот вам криейт и т д.тут все понятно.тут расписываются екшны
ладна буду дальше читать про контроллер а то я тут уже залез в исходники.потому буду смотреть
ИДЕМ ДАЛЬШЕ
Начиная с версии 1.1.4, в Yii появилась поддержка автоматической привязки параметров к действиям контроллера. То есть можно задать именованные параметры, в которые автоматически будут попадать соответствующие значения из $_GET.
Для того чтобы показать, как это работает, предположим, что нам нужно реализовать действие create контроллера PostController. Действие принимает два параметра:
category: ID категории, в которой будет создаваться запись (целое число);
language: строка, содержащая код языка, который будет использоваться в записи.
Скорее всего, для получения параметров из $_GET в контроллере нам придётся написать следующий скучный код:
class PostController extends CController
{
public function actionCreate()
{
if(isset($_GET['category']))
$category=(int)$_GET['category'];
else
throw new CHttpException(404,'неверный запрос');
if(isset($_GET['language']))
$language=$_GET['language'];
else
$language='en';
// … действительно полезная часть кода …
}
}
вот это я понял.потом берем в инсерт пихаем категорию и язык
и текст собственно говоря.да и все.
class PostController extends CController
{
public function actionCreate($category, $language='en')
{
$category=(int)$category;
// … действительно полезная часть кода …
}
}
Мы добавляем два параметра методу actionCreate. Имя каждого должно в точности совпадать с одним из ключей в $_GET. Параметру $language задано значение по умолчанию en, которое используется, если в запросе соответствующий параметр отсутствует. Так как $category не имеет значения по умолчанию, в случае отсутствия соответствующего параметра в запросе будет автоматически выброшено исключение CHttpException (с кодом ошибки 400).
можно и так например.если все четенько совпадает
Начиная с версии 1.1.5, Yii поддерживает указание массивов в качестве параметров действий. Использовать их можно следующим образом:
class PostController extends CController
{
public function actionCreate(array $categories)
{
// Yii приведёт $categories к массиву
}
}
В ВОТ ТУ Я НЕ ПОНЯЛ.ну массив ну и что.оно что будет выбирать?ключи или значения?
Начиная с версии 1.1.7, автоматическая привязка параметров работает и с действиями, оформленными в виде классов. Если метод run() в классе действия описать с параметрами, то эти параметры наполняются соответствующими значениями из HTTP-запроса:
class UpdateAction extends CAction
{
public function run($id)
{
// $id будет заполнен значением из $_GET['id']
}
}
ну тут понятно
лежит в D:\wamp\www\yiitrener\protected\views\layouts\main.php
а внутрь страницы генерится D:\wamp\www\yiitrener\protected\views\site\index.php типа страница индекс
Это все генерится потому что контроллер сайт D:\wamp\www\yiitrener\protected\controllers\SiteController.php внутри имеет
/**
* This is the default 'index' action that is invoked
* when an action is not explicitly requested by users.
*/
public function actionIndex()
{
// renders the view file 'protected/views/site/index.php'
// using the default layout 'protected/views/layouts/main.php'
$this->render('index');
}
такой вот екшн а все это генерится потому что вы поняли.когда заходишь на сайт
то первый запрос http://localhost/mysite/index.php?r=site/index
site/index вот эта тема в запросе называется маршрут.он типа и определяет какой какой контроллер и действие будет выполняться
ВТОРОЕ:
когда генерирую модель User (это на сайте в руководстве "создаем первое приложение")с помощю ГИИ на таблицу tbl_user дефолтную где висят айдишки парли и емейлы
ТО ГРУБО ГОВОРЯ МОДЕЛЬ ЯВЛЯЕТСЯ ВЮХОЙ НА ЭТУ ТАБЛИЦУ!!!!!!
Теперь еще
когда я генерирую КРУД то я сразу генерю и контроллер и вьюху
.ща посмотрю как это работает
Generating code using template "D:\wamp\www\trener\framework\gii\generators\crud\templates\default"...
generated controllers\UserController.php
generated views\user\_form.php
generated views\user\_search.php
generated views\user\_view.php
generated views\user\admin.php
generated views\user\create.php
generated views\user\index.php
generated views\user\update.php
generated views\user\view.php
done!
Вообщем на модель сгенерило контроллер одноименный а вот контроллер ИД я сгенерил юзер с маленькой буквы и создало вьюхи на основе его(а сам контроллер я так понял привязался с имени модели(тоесть Юзер с большой буквы)
http://localhost/yiitrener/index.php?r=user
и потом я перехожу по этой ссылка (получается роут на контроллер только(все таки с маленькой получается это только егенерится в файлах с большой контроллер а имя его маленькое на самом деле)
и мне выводит контроллер на чтение всю таблицу.
но когда хочешь редактить по нужно авторицироваться
такие дела
АГА получается в базовом лейауте двухполосная модель
.зашел в D:\wamp\www\yiitrener\protected\controllers\UserController.php
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
'postOnly + delete', // we only allow deletion via POST request
);
}
сразу смотрим что там подключаются фильтры один из них ассесс контрол
я взял да убрал его.просто удалил.обновил страницу и смог редактировать.
УЖЕ ИНТЕРЕСНЕЕ.НАЧИНАЮ ПОНИМАТЬ.тоесть к контроллеру можно подрубать фильтры авторизации и т д
Идем дальше
дальеш в контроллере вот такое
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view'),
'users'=>array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('create','update'),
'users'=>array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('admin','delete'),
'users'=>array('admin'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
ну тут права идут.более ли менее понятно
дальше идет вот что(это вс е в контроллере)
public function actionView($id)
{
$this->render('view',array(
'model'=>$this->loadModel($id),
));
}
АГА.вот начинают описываться екшны описанные выше(например
allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view'),
ВОТ он и вью)
тоесть я так понимаю в этой функции екшнвью он рендерит
вьюшку по этому екшну(только вот вроде указана модель.немного непонимаю this
Псевдо-переменная $this доступна в том случае, если метод был вызван в контексте объекта. $this является ссылкой на вызываемый объект. Обычно это тот объект, которому принадлежит вызванный метод
БЛЯТЬ все равно непонимаю откуда берется название модели.ладна то такое
пойдем дальше
public function actionCreate()
{
$model=new User;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['User']))
{
$model->attributes=$_POST['User'];
if($model->save())
$this->redirect(array('view','id'=>$model->id));
}
$this->render('create',array(
'model'=>$model,
));
}
вот вам криейт и т д.тут все понятно.тут расписываются екшны
ладна буду дальше читать про контроллер а то я тут уже залез в исходники.потому буду смотреть
ИДЕМ ДАЛЬШЕ
Начиная с версии 1.1.4, в Yii появилась поддержка автоматической привязки параметров к действиям контроллера. То есть можно задать именованные параметры, в которые автоматически будут попадать соответствующие значения из $_GET.
Для того чтобы показать, как это работает, предположим, что нам нужно реализовать действие create контроллера PostController. Действие принимает два параметра:
category: ID категории, в которой будет создаваться запись (целое число);
language: строка, содержащая код языка, который будет использоваться в записи.
Скорее всего, для получения параметров из $_GET в контроллере нам придётся написать следующий скучный код:
class PostController extends CController
{
public function actionCreate()
{
if(isset($_GET['category']))
$category=(int)$_GET['category'];
else
throw new CHttpException(404,'неверный запрос');
if(isset($_GET['language']))
$language=$_GET['language'];
else
$language='en';
// … действительно полезная часть кода …
}
}
вот это я понял.потом берем в инсерт пихаем категорию и язык
и текст собственно говоря.да и все.
class PostController extends CController
{
public function actionCreate($category, $language='en')
{
$category=(int)$category;
// … действительно полезная часть кода …
}
}
Мы добавляем два параметра методу actionCreate. Имя каждого должно в точности совпадать с одним из ключей в $_GET. Параметру $language задано значение по умолчанию en, которое используется, если в запросе соответствующий параметр отсутствует. Так как $category не имеет значения по умолчанию, в случае отсутствия соответствующего параметра в запросе будет автоматически выброшено исключение CHttpException (с кодом ошибки 400).
можно и так например.если все четенько совпадает
Начиная с версии 1.1.5, Yii поддерживает указание массивов в качестве параметров действий. Использовать их можно следующим образом:
class PostController extends CController
{
public function actionCreate(array $categories)
{
// Yii приведёт $categories к массиву
}
}
В ВОТ ТУ Я НЕ ПОНЯЛ.ну массив ну и что.оно что будет выбирать?ключи или значения?
Начиная с версии 1.1.7, автоматическая привязка параметров работает и с действиями, оформленными в виде классов. Если метод run() в классе действия описать с параметрами, то эти параметры наполняются соответствующими значениями из HTTP-запроса:
class UpdateAction extends CAction
{
public function run($id)
{
// $id будет заполнен значением из $_GET['id']
}
}
ну тут понятно
БЛЯТЬ,Я ОПЯТЬ ПРОЕБАЛ 50 ДОЛЛАРОВ!!!!!!!!!!!!!!!
ПИЗДЕЦ,ПРОСТО ПОДКУПИЛ под отметкой 50 и они пошла ВНИЗ,А Я ДОЛБОЕБ СТОП НЕ ПОСТАВИЛ.И СМОТРЕЛ КАК ИДЕТ МИНУС!!!!!!!!!!!!!!!!!!БЛЯТЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬ ВТОРОЙ ДЕНЬ УЖЕ ИДЕТ СЛИВ!!!!КАКОГО ХУЯ!!!!!!!!!!!!!!БЛЯТЬ КАКОГО ХУЯ Я ТАУК СЛИВАЮ!!!БЕЗ СТОПА БЛЯТЬ!!!!НАХУЙ Я СИДЕЛ БЕЗ СТОПА БЛЯТЬ!!!!!!!!!НАХУЙ Я ЗАЛЕЗ СРАЗУ В МИНУС 9 И ПОТОМ ПОШЛО БЛЯТЬ!!!!!!!!!!!!СУКААААААА БЛЯТЬ!!!!!!!!!!!!!А ЛОХ БЛЯТЬ!!!ПРОЕБАНО 200 УЕ БЛЯТЬ!!!ЗА НЕДЕЛЮ БЛЯТЬ!!!!!!!!КАКОГО ХУЯ БЛЯТЬ!!!!!!!ВООБЩЕ ЛОХ!!!!ТЫ ЛОХ ССУКА!!!НА РОВНОМ.БЗЕ БОРЬБА БЛЯТЬ!!!!!!!ЭТО Ж ТЕБЕ НЕ ДЕМКА!!!!!
200УЕ БЛЯТЬ.ОДИН ПРИБЫЛЬНЫЙ ДЕНЬ БЛЯТЬ!!!!!!!!!!!!!!!!!!!!!!!!!СУКАААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААА
АААААААААААААААААА ПИДАРАС!!!!!
вообщем я лох.тильтовый лох.и это нада понимать.
стопа не поставил.хоть бы 20 слил.так нет же ждал шо пойдет наверх.блять.столкьо было возможностей заработать а ты пошел в эту ДДД.
ВЫВОД:ставть стоп.
ждать пока цена закрепится за отметкой и будет торговаться там.
ОБЕЩАЮ СЕБЕ СТАВИТЬ И ВОВРЕМЯ УБИРАТЬ СТОПЫ.ЛОХ БЛЯТЬ
ПОКА,
теперь я успокаиваюсь.нет зла нет раздражения.просот спокойствие.нужно воспринимать потери как самого себя.принимать их.скоро я научусь их игнорировать и нормально торговать.спасибо.
БЛЯТЬ А СНДК КОТОРУЮ ВЗЯЛ ПЕРЕД ТЕМ КАК ЗАКРЫЛО ПОШЛА УЖЕ НА 25 центов вверх БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
200УЕ БЛЯТЬ.ОДИН ПРИБЫЛЬНЫЙ ДЕНЬ БЛЯТЬ!!!!!!!!!!!!!!!!!!!!!!!!!СУКАААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААА
АААААААААААААААААА ПИДАРАС!!!!!
вообщем я лох.тильтовый лох.и это нада понимать.
стопа не поставил.хоть бы 20 слил.так нет же ждал шо пойдет наверх.блять.столкьо было возможностей заработать а ты пошел в эту ДДД.
ВЫВОД:ставть стоп.
ждать пока цена закрепится за отметкой и будет торговаться там.
ОБЕЩАЮ СЕБЕ СТАВИТЬ И ВОВРЕМЯ УБИРАТЬ СТОПЫ.ЛОХ БЛЯТЬ
ПОКА,
теперь я успокаиваюсь.нет зла нет раздражения.просот спокойствие.нужно воспринимать потери как самого себя.принимать их.скоро я научусь их игнорировать и нормально торговать.спасибо.
БЛЯТЬ А СНДК КОТОРУЮ ВЗЯЛ ПЕРЕД ТЕМ КАК ЗАКРЫЛО ПОШЛА УЖЕ НА 25 центов вверх БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
Теперь будет новый цикл статей про фреймворк Yii.Как я его учу.
И это первая статья.
Вообщем то что буду писать ниже это вольный перевод дефинитив гида по УИИ(так я его буду писать так как переключаться на инглишь облом)
Понеслась:
http://www.example.com/index.php?r=post/show&id=1
выполнился этот запрос.
1.скрипт создает апликаишн и запускает ее(инстанс)
2.аплик(так дальше буду называть) забирает детализированную
инфу о запросе через апликейшн компонент РЕКВЕСТ(выдирает из запроса)
3.с помощю УРЛ МАНАГЕРА аплик узнает какой должен быть контроллер
и какие экшн(действие)
For this example, the controller is post, which refers to the PostController class;
and the action is show, whose actual meaning is determined by the controller.
ну вы поняли.для этого примера контроллер ПОСТ а действие ШОУ
4.потом апликейшн создает инстанс контроллера чтоб обслужить реквест юзера
.Контроллер узнает что метод ШОУ ссылается на метод actionshow в контроллер классе.ПОтом
после того как контроллер узнал о экшне он применяет фильтры(разрешения,тесты).И только затеи если это
разрешено он выполняет действие
6.Экшн собственно читает модель ПОСТ ИД которого 1 из БД
7.ТАКЖЕ акшн рендерит вьюшку имя которой ШОУ в модели ПОСТ
8.ВЬЮХА читает и показывает атрибуты модели ПОСТ
9.ВЬЮХА выполняет какие то виджеты
10.ВЬЮХА рендерит результат в лейауте
11.Действие заканчивается после того как вьюха отрендерила и показала результат юзеру.
Что содержит первчинозагружаемый скрипт:
Входной скрипт:
// remove the following line when in production mode
defined('YII_DEBUG') or define('YII_DEBUG',true);
// include Yii bootstrap file
require_once('path/to/yii/framework/yii.php');
// create application instance and run
$configFile='path/to/config/file.php';
Yii::createWebApplication($configFile)->run();
он сначала запускает первый запускной файл yii.php потом создает апликейшн инстанс и запускает его
дальше....
АПЛИКЕЙШН ПОПОБДРОБНЕЕ:
ЕГО ЗАДАЧА:Собрать побольше инфы о запросе и передать эту инфу контроллеру.
Также задача апликейшна держать в себе данные конфигурации апликейшн уровня.
ПОЭТОМУ аплик называется поправильноу front-controller
Апик обжект является инстансом синглтона,к синглтону может быть получен доступ из любого места посредством Yii::app().
1. Application Configuration
По умолчанию апилкейшн обжект является потомком CWebApplication.Чтоб дать ему параметры и кастомизировать его мы редактируем конф файл(который как вы знаете является массивом).Или же мы может подредактировать сам CWebApplication или расширить его(что видимо неесть хороший тон.я так точно делать небуду)
Конф файл:это массив ключ-значение
Для примера массив задает имя и контроллер по умолчанию для приложения
array(
'name'=>'Yii Framework',
'defaultController'=>'site',
)
Конф обычно хранится как защищенный скрипт
(e.g. protected/config/main.php)
и для получения данных он вконце возвращает их
return array(...);
чтоб применить конф к апику мы в ентри скрипте даем ему конф файл как параметр
To apply the configuration, we pass the configuration file name as a parameter to the application's constructor, or to Yii::createWebApplication() in the following manner, usually in the entry script:
$app=Yii::createWebApplication($configFile);
вот так вот
2. Application Base Directory
Ну тут понятно .можно подредактить через basePath property in the application configuration.
но в идеале оно должно находиться в протектед.чтоб не лезли все кто не нада
3. Application Components
функциональность может быть переделана как хочешь блабла бла.у аплика есть разные компоненты которыми он может пользоваться.Например CUrlManager and CHttpRequest components.
с помощю этих компонент он анализирует запрос юзера.
Для того чтоб компоненты работали их нада конфигурировать через подмассив компоненты в конф скрипте:
Тут для примера приводится мемкеш которому дали задание работаеть через несколько мемкеш серверов:
array(
......
'components'=>array(
......
'cache'=>array(
'class'=>'CMemCache',
'servers'=>array(
array('host'=>'server1', 'port'=>11211, 'weight'=>60),
array('host'=>'server2', 'port'=>11211, 'weight'=>40),
),
),
),
)
Чтоб добраться до компонента аплика нужно Yii::app()->ComponentID тоесть например
Yii::app()->cache).Тоесть тут класс УИИ потом генерится апликация с помощю функции (метод класса)АПП() а потом еще и метод кеш сверху
Подсказка: По умолчанию, компоненты приложения создаются по требованию. Это означает, что компонент приложения не могут быть созданы на всех, если он не доступен во время запроса пользователя. В результате, общая производительность может быть не пострадает, даже если приложение настроено со многими компонентами. Некоторые компоненты приложения (например, CLogRouter), возможно, должны быть созданы независимо от того, используются они или нет. Чтобы сделать это, укажите их идентификаторы в преднагрузки собственности приложений.
4. Core Application Components
Yii предопределяет набор компонентов ядра, которые предоставляют возможности общего веб-приложениями. Например, компонент request используется для сбора информации о запросе пользователя и предоставлять такую информацию, как просил URL и куки. При настройке свойств этих основных компонентов, мы можем изменить поведение по умолчанию почти каждый компонент Yii.
Вот список предекларированных компонентов по умолчанию:
assetManager: CAssetManager - управляет публицированием приватных файлов
authManager: CAuthManager - управляет доступам по ролям(кароче вы поняли.права)
cache: CCache - кэш(вы должны указать конкретный класс CMemCache, CDbCache)
clientScript: CClientScript - руководит скриптом клиента(яваскрипт цсс)
coreMessages: CPhpMessageSource это я непонял.сообщения ядра провайдит.ХЗ
db: CDbConnection ну тут понятно.доступ к дп.для этого нужно сконфигурировать коннекшин стринг
errorHandler: CErrorHandler анкот(несловленные) ерроры(пхп)
format: CFormatter форматит дату для предоставления
messages: CPhpMessageSource ОПЯТЬ не понял.provides translated messages used by the Yii application.что значит месседжи?переведенные темболее.неясно пока.
request: CHttpRequest инфа связанная с запросами хттп(вынимает все что в них наверное)
securityManager: CSecurityManager - сервис который хеширует или шифрует(тоесть ненада теперь в самой бж шифровать.ок)
session: CHttpSession функционал связанный с сессией
statePersister: CStatePersister это непоянтно.сохраняет глоюальные состояния че то такое
provides the mechanism for persisting global state.
urlManager: CUrlManager парсит урлы
user: CWebUser несет инфу о юзере(права все такео)
themeManager: CThemeManager ТУТ темы даже есть.нихуясебе
5. Application Life Cycle ¶
вот вам и цикл приложиния.ну чтож будем переводить
При обработке запроса пользователя, приложение будет проходить следующий цикл жизни:
Предварительно инициализации приложения с CApplication :: PreInit ();
Установите автозагрузчик класса и обработки ошибок;
Зарегистрируйтесь основных компонентов приложения;
Загрузка конфигурации приложения;
Инициализация приложения с CApplication :: Init ()
Регистрация поведение приложений;
Загрузите статических компонентов приложения;
Поднимите OnBeginRequest события;
Обработка запроса пользователя:
Сбор информации о запросе;
Создание контроллера;
Запуск контроллера;
Поднимите onEndRequest события;
КАРОЧЕ В ОБЩЕМ АПЛИК ПОДНИМАЕТСЯ САМ.ПАРСИТ ЗАПРОС.СОЗДАЕТ И ЗАПУСКАЕТ КОНТРОЛЛЕР.и потом собственно ее и генерит ендреквест.
ПОНЕСЛАСЬ ДАЛЬШЕ:
КОНТРОЛЛЕР:
это инстанс CController или класса который расширяет CController.вообщем вы поняли
создан апликом когда пользователь запрашивает его
он производит запрашиваемое действие,по итогу берет данные из модели и рендерит вью.
action это самая простая форма контроллера.это метод класса контроллера который начинаетс я на action
НУ ЧТОЖ ПРОДОЛЖИМ ПОПОДРОБНЕЕ
У контроллера есть действие по умолчанию
ВООБЩЕМ НАШЕЛ РУКОВОДСТВО ПО РУССКИ
http://yiiframework.ru/doc/guide/ru/
ТЕПЕРЬ НАХУЙ ПЕРЕВОД только буду писать про сам смысл как я делаю приложение
Вообщем то что буду писать ниже это вольный перевод дефинитив гида по УИИ(так я его буду писать так как переключаться на инглишь облом)
Понеслась:
http://www.example.com/index.php?r=post/show&id=1
выполнился этот запрос.
1.скрипт создает апликаишн и запускает ее(инстанс)
2.аплик(так дальше буду называть) забирает детализированную
инфу о запросе через апликейшн компонент РЕКВЕСТ(выдирает из запроса)
3.с помощю УРЛ МАНАГЕРА аплик узнает какой должен быть контроллер
и какие экшн(действие)
For this example, the controller is post, which refers to the PostController class;
and the action is show, whose actual meaning is determined by the controller.
ну вы поняли.для этого примера контроллер ПОСТ а действие ШОУ
4.потом апликейшн создает инстанс контроллера чтоб обслужить реквест юзера
.Контроллер узнает что метод ШОУ ссылается на метод actionshow в контроллер классе.ПОтом
после того как контроллер узнал о экшне он применяет фильтры(разрешения,тесты).И только затеи если это
разрешено он выполняет действие
6.Экшн собственно читает модель ПОСТ ИД которого 1 из БД
7.ТАКЖЕ акшн рендерит вьюшку имя которой ШОУ в модели ПОСТ
8.ВЬЮХА читает и показывает атрибуты модели ПОСТ
9.ВЬЮХА выполняет какие то виджеты
10.ВЬЮХА рендерит результат в лейауте
11.Действие заканчивается после того как вьюха отрендерила и показала результат юзеру.
Что содержит первчинозагружаемый скрипт:
Входной скрипт:
// remove the following line when in production mode
defined('YII_DEBUG') or define('YII_DEBUG',true);
// include Yii bootstrap file
require_once('path/to/yii/framework/yii.php');
// create application instance and run
$configFile='path/to/config/file.php';
Yii::createWebApplication($configFile)->run();
он сначала запускает первый запускной файл yii.php потом создает апликейшн инстанс и запускает его
дальше....
АПЛИКЕЙШН ПОПОБДРОБНЕЕ:
ЕГО ЗАДАЧА:Собрать побольше инфы о запросе и передать эту инфу контроллеру.
Также задача апликейшна держать в себе данные конфигурации апликейшн уровня.
ПОЭТОМУ аплик называется поправильноу front-controller
Апик обжект является инстансом синглтона,к синглтону может быть получен доступ из любого места посредством Yii::app().
1. Application Configuration
По умолчанию апилкейшн обжект является потомком CWebApplication.Чтоб дать ему параметры и кастомизировать его мы редактируем конф файл(который как вы знаете является массивом).Или же мы может подредактировать сам CWebApplication или расширить его(что видимо неесть хороший тон.я так точно делать небуду)
Конф файл:это массив ключ-значение
Для примера массив задает имя и контроллер по умолчанию для приложения
array(
'name'=>'Yii Framework',
'defaultController'=>'site',
)
Конф обычно хранится как защищенный скрипт
(e.g. protected/config/main.php)
и для получения данных он вконце возвращает их
return array(...);
чтоб применить конф к апику мы в ентри скрипте даем ему конф файл как параметр
To apply the configuration, we pass the configuration file name as a parameter to the application's constructor, or to Yii::createWebApplication() in the following manner, usually in the entry script:
$app=Yii::createWebApplication($configFile);
вот так вот
2. Application Base Directory
Ну тут понятно .можно подредактить через basePath property in the application configuration.
но в идеале оно должно находиться в протектед.чтоб не лезли все кто не нада
3. Application Components
функциональность может быть переделана как хочешь блабла бла.у аплика есть разные компоненты которыми он может пользоваться.Например CUrlManager and CHttpRequest components.
с помощю этих компонент он анализирует запрос юзера.
Для того чтоб компоненты работали их нада конфигурировать через подмассив компоненты в конф скрипте:
Тут для примера приводится мемкеш которому дали задание работаеть через несколько мемкеш серверов:
array(
......
'components'=>array(
......
'cache'=>array(
'class'=>'CMemCache',
'servers'=>array(
array('host'=>'server1', 'port'=>11211, 'weight'=>60),
array('host'=>'server2', 'port'=>11211, 'weight'=>40),
),
),
),
)
Чтоб добраться до компонента аплика нужно Yii::app()->ComponentID тоесть например
Yii::app()->cache).Тоесть тут класс УИИ потом генерится апликация с помощю функции (метод класса)АПП() а потом еще и метод кеш сверху
Подсказка: По умолчанию, компоненты приложения создаются по требованию. Это означает, что компонент приложения не могут быть созданы на всех, если он не доступен во время запроса пользователя. В результате, общая производительность может быть не пострадает, даже если приложение настроено со многими компонентами. Некоторые компоненты приложения (например, CLogRouter), возможно, должны быть созданы независимо от того, используются они или нет. Чтобы сделать это, укажите их идентификаторы в преднагрузки собственности приложений.
4. Core Application Components
Yii предопределяет набор компонентов ядра, которые предоставляют возможности общего веб-приложениями. Например, компонент request используется для сбора информации о запросе пользователя и предоставлять такую информацию, как просил URL и куки. При настройке свойств этих основных компонентов, мы можем изменить поведение по умолчанию почти каждый компонент Yii.
Вот список предекларированных компонентов по умолчанию:
assetManager: CAssetManager - управляет публицированием приватных файлов
authManager: CAuthManager - управляет доступам по ролям(кароче вы поняли.права)
cache: CCache - кэш(вы должны указать конкретный класс CMemCache, CDbCache)
clientScript: CClientScript - руководит скриптом клиента(яваскрипт цсс)
coreMessages: CPhpMessageSource это я непонял.сообщения ядра провайдит.ХЗ
db: CDbConnection ну тут понятно.доступ к дп.для этого нужно сконфигурировать коннекшин стринг
errorHandler: CErrorHandler анкот(несловленные) ерроры(пхп)
format: CFormatter форматит дату для предоставления
messages: CPhpMessageSource ОПЯТЬ не понял.provides translated messages used by the Yii application.что значит месседжи?переведенные темболее.неясно пока.
request: CHttpRequest инфа связанная с запросами хттп(вынимает все что в них наверное)
securityManager: CSecurityManager - сервис который хеширует или шифрует(тоесть ненада теперь в самой бж шифровать.ок)
session: CHttpSession функционал связанный с сессией
statePersister: CStatePersister это непоянтно.сохраняет глоюальные состояния че то такое
provides the mechanism for persisting global state.
urlManager: CUrlManager парсит урлы
user: CWebUser несет инфу о юзере(права все такео)
themeManager: CThemeManager ТУТ темы даже есть.нихуясебе
5. Application Life Cycle ¶
вот вам и цикл приложиния.ну чтож будем переводить
При обработке запроса пользователя, приложение будет проходить следующий цикл жизни:
Предварительно инициализации приложения с CApplication :: PreInit ();
Установите автозагрузчик класса и обработки ошибок;
Зарегистрируйтесь основных компонентов приложения;
Загрузка конфигурации приложения;
Инициализация приложения с CApplication :: Init ()
Регистрация поведение приложений;
Загрузите статических компонентов приложения;
Поднимите OnBeginRequest события;
Обработка запроса пользователя:
Сбор информации о запросе;
Создание контроллера;
Запуск контроллера;
Поднимите onEndRequest события;
КАРОЧЕ В ОБЩЕМ АПЛИК ПОДНИМАЕТСЯ САМ.ПАРСИТ ЗАПРОС.СОЗДАЕТ И ЗАПУСКАЕТ КОНТРОЛЛЕР.и потом собственно ее и генерит ендреквест.
ПОНЕСЛАСЬ ДАЛЬШЕ:
КОНТРОЛЛЕР:
это инстанс CController или класса который расширяет CController.вообщем вы поняли
создан апликом когда пользователь запрашивает его
он производит запрашиваемое действие,по итогу берет данные из модели и рендерит вью.
action это самая простая форма контроллера.это метод класса контроллера который начинаетс я на action
НУ ЧТОЖ ПРОДОЛЖИМ ПОПОДРОБНЕЕ
У контроллера есть действие по умолчанию
ВООБЩЕМ НАШЕЛ РУКОВОДСТВО ПО РУССКИ
http://yiiframework.ru/doc/guide/ru/
ТЕПЕРЬ НАХУЙ ПЕРЕВОД только буду писать про сам смысл как я делаю приложение
про вчера.
отжимался.обливался.
день весь держался норм.
НО ПОД ВЕЧЕР ПРИШЕЛ ДОМОЙ И ПОЖРАЛ МЯСА.Я Ж СЕБЕ ОБЕЩАЛ НЕЖРАТЬ
ПРИШЕЛ ДОМОЙ УВИДЕЛ МЯСО И НАЧАЛ ЕГО ЖРАТЬ.Я ОТ НЕГО ЗАРОСТАЮ ЖИРОМ БЛЯТЬ.КАКОГО ХУЯ.Я ОБЕЩАЛ СЕБЕ КАК ПРИДУ ДОМОЙ НЕ ДЕЛАТЬ ХУЙНИ И НЕ ЗАХОДИТЬ НА КУХНЮ И НЕ ХАВАТЬ ПРОСТО ТАК ПОТОМУ ЧТО ДОМ И ВСЕ ТАКОЕ.
блять.вот такая хуйня.и потом еще наелся суши под вечер.это пиздец полный.
вроде и мяса немного поел.и суши енмного.НО НАДО БЫЛО ВООБЩЕ НЕЕСТЬ НИЧЕГО.
ОБЕЩАЛ ЖЕ СЕБЕ.И В ЗАВЕДЕНИИ НЕ НУЖНО БЫЛО НЕ НЕСТЬ НИЧЕГо.
тоже писла себе.пришел в заведение возьми водички или чая.не жри.необязательно жрать.
для чего ты это делаешь?чтоб типа быть как вс е в заведении?типа все едят и я тоже?вообщем бред.или возьми суши какие то недороги и пусть они стоят.да и все.
лег спать непоздно но проснулся поздно.нужно ложиться спать раньше.
ПРО СЕГОДНЯ:отблился отжался.нужно держаться.приду поотжимаюсь и не буду есть(это когда домой приду).
так все пока.ПО ПОВОДУ РАЗДРАЖЕНИЙ.вроде неособо раздражался.матюкался но меньше.
НУЖНО СЛЕДИТЬ ЗА СОБО Й И НЕ МАТЮКАТЬСЯ.НЕ РАЗДРАЖАТЬСЯ.ВЫДЕРЖИВАТЬ ИСПЫТАНИЯ!
день весь держался норм.
НО ПОД ВЕЧЕР ПРИШЕЛ ДОМОЙ И ПОЖРАЛ МЯСА.Я Ж СЕБЕ ОБЕЩАЛ НЕЖРАТЬ
ПРИШЕЛ ДОМОЙ УВИДЕЛ МЯСО И НАЧАЛ ЕГО ЖРАТЬ.Я ОТ НЕГО ЗАРОСТАЮ ЖИРОМ БЛЯТЬ.КАКОГО ХУЯ.Я ОБЕЩАЛ СЕБЕ КАК ПРИДУ ДОМОЙ НЕ ДЕЛАТЬ ХУЙНИ И НЕ ЗАХОДИТЬ НА КУХНЮ И НЕ ХАВАТЬ ПРОСТО ТАК ПОТОМУ ЧТО ДОМ И ВСЕ ТАКОЕ.
блять.вот такая хуйня.и потом еще наелся суши под вечер.это пиздец полный.
вроде и мяса немного поел.и суши енмного.НО НАДО БЫЛО ВООБЩЕ НЕЕСТЬ НИЧЕГО.
ОБЕЩАЛ ЖЕ СЕБЕ.И В ЗАВЕДЕНИИ НЕ НУЖНО БЫЛО НЕ НЕСТЬ НИЧЕГо.
тоже писла себе.пришел в заведение возьми водички или чая.не жри.необязательно жрать.
для чего ты это делаешь?чтоб типа быть как вс е в заведении?типа все едят и я тоже?вообщем бред.или возьми суши какие то недороги и пусть они стоят.да и все.
лег спать непоздно но проснулся поздно.нужно ложиться спать раньше.
ПРО СЕГОДНЯ:отблился отжался.нужно держаться.приду поотжимаюсь и не буду есть(это когда домой приду).
так все пока.ПО ПОВОДУ РАЗДРАЖЕНИЙ.вроде неособо раздражался.матюкался но меньше.
НУЖНО СЛЕДИТЬ ЗА СОБО Й И НЕ МАТЮКАТЬСЯ.НЕ РАЗДРАЖАТЬСЯ.ВЫДЕРЖИВАТЬ ИСПЫТАНИЯ!
понедельник, 17 декабря 2012 г.
БЛЯТЬ НУ КАК ТАК ААААААААААААААААААААААААААААААААА
СУКААААА.МАЛО ТОГО ЧТО В ХП ЗАЛЕЗ БЛЯТЬ!!!!!
ПОТЕРЯЛ 20 БАКСОВ НА 100 АКЦИЯх,ТАК ОНА НА СТОПЕ ПРОСКОЛЬЗНУЛ И Я ПОТЕРЯЛ 28
ТАК БЛЯТЬ ЕЩЕ И БРСМ ЗАБЫЛ СТОП УБРАТЬ.И ОНА ВЗЯЛАСЬ СТОПОМ.И Я БЛЯТЬ ПОТЕРЯЛ ЕЩЕ 20 БАЧЕЙ БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯТЬ
все.я обещал себе не раздражаться.все ок.спокойно.нужно убирать стопы и это контроллировать.
вот и про биржу написал.15 минут.так было все хорошо.все шло очень ОК.и вот ты проебал по своей же тупости.короткий стоп нужно ставить.может в хп
ты был неправ так как в хп по ленте небыло движения.
НО БЛЯТЬ БРСМ это тупо твоя ошибка мрачная.нужно не забывать о сотпах и чтоб больше такого не посторялось.170 ьачей вминус.думай как дальше быть.
ПОТЕРЯЛ 20 БАКСОВ НА 100 АКЦИЯх,ТАК ОНА НА СТОПЕ ПРОСКОЛЬЗНУЛ И Я ПОТЕРЯЛ 28
ТАК БЛЯТЬ ЕЩЕ И БРСМ ЗАБЫЛ СТОП УБРАТЬ.И ОНА ВЗЯЛАСЬ СТОПОМ.И Я БЛЯТЬ ПОТЕРЯЛ ЕЩЕ 20 БАЧЕЙ БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯТЬ
все.я обещал себе не раздражаться.все ок.спокойно.нужно убирать стопы и это контроллировать.
вот и про биржу написал.15 минут.так было все хорошо.все шло очень ОК.и вот ты проебал по своей же тупости.короткий стоп нужно ставить.может в хп
ты был неправ так как в хп по ленте небыло движения.
НО БЛЯТЬ БРСМ это тупо твоя ошибка мрачная.нужно не забывать о сотпах и чтоб больше такого не посторялось.170 ьачей вминус.думай как дальше быть.
ВСЕ ТАКИ БЛЯТЬ НАЖРАЛСЯ ВЧЕРА
ЕБАНАРОТ написал жеж пост вчера.все отлично было.А ПОТОМ ВТУПУЮ ПОШЕЛ НА КУХНЮ И ПОЕЛ МЯСКА И ВИНИГРЕТ.И БЛЯТЬ ЛЕГ СПАТЬ В ПОЛ ЧЕТВЕРТОГО БЛЯТЬ
НУ КАК ТАК МОЖНО.Даю себе слово рано ложиться спать.когда я поздно встаю я плохо себя чувствую.когда я ему на ноч.тем более жирное.я плохо себя чувствую.я хочу чувствовать себя хорошо.поэтому я буду олжиться рано спать и не буду есть на ноч.
Теперь сегодня.Сутра встал поздно.но поотжимался.облился холодной водой.все окей.
По развитию читаю книгу Узнай лжеца.вечером буду раздуплять УИИ фреймворк.
сделал домашку по бирже.сходил купил бананы и творог.
БЛЯ МНЕ НУЖНО ПОПАСТЬ ПО ДОКТОРАМ,НУЖНО ЭТО СДЕЛАТЬ В БЛИЖАЙЩЕЕ ВРЕМЯ!!!!
ДАЮ СЕБЕ СЛОВО В ТЕЧЕНИИ СЛЕД НЕДЕЛИ ЧТОБ ЭТО НИ СТАЛО ПОЕХАТЬ И ПРОЙТИ ТО ЧТО Я ХОЧУ ДОКТОРОВ
ТЕПЕРЬ ДАЛЬШЕ.
по поводу развития.с этого дня буду переставать матюкаться.и буду давить свою раздражительность.НЕ МАТЮКАТЬСЯ.НЕ РАЗДРАЖАТЬСЯ.НЕ ИСПЫТЫВАТЬ НЕГАТИВНЫЕ МЫСЛИ.ТОЛЬКО ПОЗИТИВ.ТОЛЬКО КРАСИВОЕ ОБЩЕНИЕ. ТОЛЬКО ХОРОШЕЕ НАСТРОЕНИЕ.ПРОХОДИТЬ ИСПЫТАНИЯ)))))ТОЛЬКО))))
ДАЮ СЕБЕ СЛОВО,А ЕСЛИ ДАЛ СЕБЕ СЛОВО НУЖНО ДЕРЖАААААТЬ)))
теперь постараюсь никаких матов в журнале
НУ КАК ТАК МОЖНО.Даю себе слово рано ложиться спать.когда я поздно встаю я плохо себя чувствую.когда я ему на ноч.тем более жирное.я плохо себя чувствую.я хочу чувствовать себя хорошо.поэтому я буду олжиться рано спать и не буду есть на ноч.
Теперь сегодня.Сутра встал поздно.но поотжимался.облился холодной водой.все окей.
По развитию читаю книгу Узнай лжеца.вечером буду раздуплять УИИ фреймворк.
сделал домашку по бирже.сходил купил бананы и творог.
БЛЯ МНЕ НУЖНО ПОПАСТЬ ПО ДОКТОРАМ,НУЖНО ЭТО СДЕЛАТЬ В БЛИЖАЙЩЕЕ ВРЕМЯ!!!!
ДАЮ СЕБЕ СЛОВО В ТЕЧЕНИИ СЛЕД НЕДЕЛИ ЧТОБ ЭТО НИ СТАЛО ПОЕХАТЬ И ПРОЙТИ ТО ЧТО Я ХОЧУ ДОКТОРОВ
ТЕПЕРЬ ДАЛЬШЕ.
по поводу развития.с этого дня буду переставать матюкаться.и буду давить свою раздражительность.НЕ МАТЮКАТЬСЯ.НЕ РАЗДРАЖАТЬСЯ.НЕ ИСПЫТЫВАТЬ НЕГАТИВНЫЕ МЫСЛИ.ТОЛЬКО ПОЗИТИВ.ТОЛЬКО КРАСИВОЕ ОБЩЕНИЕ. ТОЛЬКО ХОРОШЕЕ НАСТРОЕНИЕ.ПРОХОДИТЬ ИСПЫТАНИЯ)))))ТОЛЬКО))))
ДАЮ СЕБЕ СЛОВО,А ЕСЛИ ДАЛ СЕБЕ СЛОВО НУЖНО ДЕРЖАААААТЬ)))
теперь постараюсь никаких матов в журнале
Подписаться на:
Сообщения (Atom)

