DbHelp.ru
Маленький Yii блог
Комментарии
Гость: Buy Cheap Cialis generic cialis 20mg tablets safe dosage for cialis cialis tadalafil online cipla ...
Гость: Sildenafil 100mg cialis farmacia italana cailis where to buy pfizer cialis edex and cialis together ...
Гость: Sildenafil Citrate cialis alcohol consumption find out more jual cialis online best form natural cia...
Гость: Sildenafil Citrate 100mg cialis man costume cialis rezeptfrei cialis et avc wow cialis from canada c...
Гость: Buy Sildenafil 100mg does alcohol affect cialis cialis savings card mist halvalla cialisa best table...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

Шаг 5 : Контроллер

Рубрика: Первые шаги

Оцените эту статью:

Рейтинг: 0.00 (0)
28 Авг. 2010
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

Yii Framework Blog img http://dbhelp.ru3 Давайте сегодня поговорим что же такое “контроллер” и для чего он используется в приложениях на базе MVC

---

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

В этом уроке у нас будет много примеров работы с контроллером, поэтому давайте договоримся что вы не только читаете урок, но и параллельно выполняете его примеры у себя на хостинге (или локалхосте). Самое удобное будет если вы установите yii-blog из официальной документации (http://www.yiiframework.com/doc/blog/ru/start.overview).

Вот как делаю это я:

  1. Зайди на страницу “Download” (http://www.yiiframework.com/download/) и выкачай последнюю версию фреймворка
  2. Распакуй. Залей к себе на хостинг
  3. Войди в папку demo/blog. Скопируй все что там внутри и перемести в корневую папку что бы получилось что папка protected и yii-1.1.2.rN теперь на одном уровне.
  4. Открой index.php и измени пути к папке фреймворка и конфиг файла
  5. Заходи к себе через www.mysite.ru и проверь работает ли блог


Больше не какой настройкой заниматься не надо, работает и хорошо. Идем дальше.

Что бы разобраться для чего в приложении использовать контроллер давайте разберем совсем маленький пример приложения на Yii.  


Пример 1


В Yii есть отличный класс CUrlManager который отвечает за обработку url по которому обратились к нашему приложению. Зайдя по ссылке www.mysite.ru/hello/world сразу начнет работу CUrlManager и определит куда дальше передать запрос на обработку.

Правила обработки url задаются в главном конфиг файле приложения (обычно protected/config/main.php) и могут быть дополнены или изменены вами в любой момент. По умолчанию забито самое главное правило вашего приложения:

'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',


Которое говорит о том что первый параметр в url это название контроллера <controller>, а второй это один из его методов <action>. Поэтому при обращении по ссылке  www.mysite.ru/hello/world за отображение страницы на экране будет отвечать контроллер Hello и его метод actionWorld. Смелее, пробуйте проделать это у себя в приложении. Увидели ошибку? это говорит об отсутствии класса (контроллера) к которому мы пробуем обратится. Создадим?

Открываем папку protected/controllers и создаем там файлик HelloController.php:

<?php
class HelloController extends CController
{
   public function actionWorld()
   {
       echo 'Привет от HelloController->actionWorld()';
   }
}


Теперь набрав в браузере www.mysite.ru/hello/world мы получим надпись “Привет от HelloController->actionWorld()”. По аналогии вы можете добавить в этом контроллере еще пару экшинов и убедится что все работает как надо:

<?php
class HelloController extends CController
{
   public function actionWorld()
   {
       echo 'Привет от HelloController->actionWorld()';
   }
   public function actionStepan()
   {
       echo 'Привет Степан!';
   }
   public function actionDima()
   {
       echo 'Привет Дима!';
   }
   public function actionIvan()
   {
       echo 'Привет Иван!';
   }
}


Пробуй теперь: www.mysite.ru/hello/dima, www.mysite.ru/hello/ivan, www.mysite.ru/hello/stepan. Работает? Еще бы!


Идем дальше...


В каждом приложении существует такое понятие как контроллер “по умолчанию”. Он используется для обработки url когда параметр контроллера опущен совсем. К примеру, при попытке пользователя открыть www.mysite.ru/ какой контроллер будет отвечать за отображение страницы? Правильно, контроллер по умолчанию.

прим. Контроллер по умолчанию задается в файле конфигурации приложения (обычно config/main.php) в виде парраметра defaultController, например: 'defaultController'=>'index'. Если параметр не указан, контроллер по умолчанию - site

Существует еще понятие как экшин “по умолчанию”. Он выполняется в том случае когда не указанно явно к какому экшину идет обращение. К примеру, при попытке открыть www.mysite.ru/hello/ как скрипту узнать к какому экшину контроллера Hello происходит обращение? В этом случае и будет вызван экшин по умолчанию!

прим. Экшин по умолчанию задается прямо в файле контроллера в виде переменной defaultAction, например $defaultAction = ‘test’. Если параметр не указан, экшин по умолчанию - index


Пример 2


Посмотрели вы что я написал и подумали : “Если для каждой страницы создавать свой экшин - тогда как быть с новостями на сайте? Забивать их в ручную и создавать для каждой свой экшин? Бреееддд”. Совершенно верно подумали :) Совсем не обязательно создавать новый экшин для каждой страницы ваших новостей.

Давайте предположим что мы хотим организовать специальные новости для своего сайта. Для начала откроем контроллер с которым мы уже работали (HelloController) и добавим туда новый экшин:

  public function actionNews()
  {
      echo “Вы открыли новость: ” , $_GET['news_name'];
  }


Все достаточно просто, обычный экшин который выводит на экран значение переменной ‘news_name’. Попробуйте, должно работать - www.mysite.ru/hello/news/?news_name=Тестовая_новость. Работает? Отлично!

На этом можно было бы и остановится, да только не красивый у нас адрес новости получается. Давайте откроем конфигурационный файл (config/main.php) и добавим туда специальное правило для новостей! Найдите блок urlManager, он должен выглядеть у вас следующим образом:

'urlManager'=>array(
   'urlFormat'=>'path',
   'rules'=>array(
       'post/<id:\d+>/<title:.*?>'=>'post/view',
       'posts/<tag:.*?>'=>'post/index',
       '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
   ),
),


Первые два правила - используются нашим блог движком, нам их рассматривать не интересно. Третье правило мы рассмотрели выше и знаем для чего оно используется.

Давайте добавим свое правило по типу тех что мы видим:

'news/<news_name:.*?>'=>'hello/news

Я хочу быть точно уверен что вы поняли что это значит, и хочу объяснить все подробно:

  • 'news/<news_name:.*?>'=>'hello/news' - правило применяется только к url адресам которые начинаются на словое news, например: www.mysite.ru/news/123123 и www.mysite.ru/news/555555
  • 'news/<news_name:.*?>'=>'hello/news' - говорит о том, что после слова “news” обязательно должен идти следующий параметр. В экшин этот параметр будет доступен как $_GET[‘news_name’ ]
  • 'news/<news_name:.*?>'=>'hello/news' - проверка на тип переменной. В данном случае мы используем “*” (звездочку) говоря о том что тип не имеет значения. Если бы требовалось что б правило срабатывало только когда news_name - число, тогда мы написали бы <news_name:.\d+>
  • 'news/<news_name:.*?>'=>'hello/news' - указываем какой контроллер и экшин будет заниматся обработкой этого правила. В данном случае все запросы будут отправлены в контроллер Hello и его экшин News.

Надеюсь это всем стало понятно т.к. использование собственных правил в приложении очень важный момент.

Попробуйте теперь открыть страницу www.mysite.ru/news/Вторая_тестовая_новость. Надеюсь для вас не было неожиданностью что вы увидели на экране надпись “Вы открыли новость: Вторая тестовая новость”? Если все еще не понятно откуда это взялось - просмотрите ваш HelloController.

 


Идем дальше...


Контроллер сам по себе это сердце логики вашего приложения. В нем вы должны выполнять всякие проверки, обращение к данным из модели и тп. Я мог бы растянуть урок рассказами о том как использовать собственные фильтры в контроллерах, как наследовать их и тп - но все это только запудрит вам голову. Если вы действительно поймете для чего нужен контроллер - вы сможете дойти до всяких “фильтров” сами, прочитав маленький мануальчик.

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

Из примера 2 у нас уже есть некий набросок для страницы новостей. У нас работают ссылки www.mysite.ru/news/my_test_news и мы можем перейти к следующему этапу разработки.


Пример 3


Давайте немного модернизируем наши новости. Задание достаточное простое: новости у нас находятся в тестовых файлах, а параметр news_name является этим самым именем файла. Открыв страницу www.mysite.ru/news/numb1 на странице должно выводится содержимое файла numb1.txt соответственно.
Модернизируем немного наш экшин:

   function actionNews()
   {
       if (!empty($_GET['news_name'])) {
           // если значение не пустое...
           // выводим содержимое переданного файла с расширением txt
           echo file_get_contents($_GET['news_name'] . ".txt");
       }
   }


Создаем фалик test.txt в главной директории (на уровне с index.php) и заполняем его текстом “привет это файл test.txt”. Теперь пробуем открыть www.mysite.ru/test и если получаем на экран наш текст - значит все работает.

прим. если ругается что файл не найден - скорее всего следует указать полный путь где его искать. такая ошибка может возникнуть из-за специфической настройки php/apache

Для большей красоты можно сделать проверку на существование файла и если его нет - выводить ошибку что новость уже удалена:

   function actionNews()
   {
       if (!empty($_GET['news_name'])) {
           // если значение не пустое...
           // загоняем в переменную имя файла который надо открыть
           $file_name = $_GET['news_name'] . ".txt";
           if (file_exists($file_name)) {
               // если файл существует
               // выводим на экран его содержимое
               echo file_get_contents($file_name);
           } else {
               // если файл не найден
               echo 'Новость уже удалили :(';
           }
       }
   }


На самом деле использовать такой подход у себя на сайте я настоятельно не рекомендую. Если злоумышленник допрет что вы загружаете новости из файлов, то сразу воспользуется уязвимостью и попробует манипулируя переменной news_name открыть файлы совершенно не относящиеся к новостям (к примеру, www.mysite.ru/news/\/..\/etc/htpasswd и тп). Так что данный пример я привел только что бы показать вам как работать с контроллером. Идеальным вариантом было бы загружать новости из базы данных при помощи модели!


Идем дальше...


Я надеюсь все эти примеры помогли вам еще лучше понять как можно использовать контроллеры у вас в приложениях. Уроки у нас для новичков и нет смысли пихать в вас полностью все что я знаю за один раз. Иначе моя писанина с трудом вмещалась бы на рулоне туалетной бумаги :)

Для написания следующей части урока мне потребуется немного времени и пока я буду этим занят вы выполните мое маленькое задание. Нет, писать сайты вместо меня и заниматься другой грязной работой не потребуется :)) Я предлагаю вам модернизировать наш “Пример 3” и вместо открытия новостей из файлов - постараться получить данные из БД. Помните, в прошлом уроке мы уже научились получать данные из базы методами find и findAll? Постарайтесь выполнить это самостоятельно для закрепления материала по контроллерам.  

Вот маленькая подсказка от меня:

  1. Создаем таблицу в базе данных для наших новостей (через phpmyadmin). Для начала всего три поля: id, url_name,text
  2. Создаем файл модели
  3. Изменяем наш экшин таким образом что б он брал данные из нашей модели где url_name = news_name
  4. Делаем что б если новость найдена - поле text выводилось на экран

 

От себя


Спасибо что прочитали все это! Желаю вам сил и терпения в изучении Yii Framework.



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. В процессе разработки приложения, очень часто требуется следить за запросами которые формирует фреймворк.В этом нам поможет FireBug, незаменимый инструмент ... "Логирование запросов в FireBug"

  2. Очень долго у меня в голове летает мысль создания собственной хостинг компании. Моим основным заработком уже пол года является чистый ... "#01 : Введение"

  3. Буквально пару дней назад закончилась вторая Международная конференция "FOSS Sea" в Одессе. Как вы понимаете я являлся одним из ... "FOSS Sea 2009"

[adm] zolter

Было сказано: Суббота, 28 Август 2010

Продолжим цикл статей для новичков "Первые шаги".

По результатам голосов и статистики посещения этот цикл интересует посетителей моего блога больше всего

[guest] Макс

Было сказано: Суббота, 28 Август 2010

Отличная статья! Спасибо!!!

[guest] hyzhak

Было сказано: Суббота, 28 Август 2010

Почему-то все забывают рассказать про метод missingAction

[adm] zolter

Было сказано: Суббота, 28 Август 2010

Эта часть статьи не включает в себя рассмотрение методов контроллера такие как render, missingAction, redirect и тп. Материал чисто для понимания для чего используется контроллер

hyzhak

Было сказано: Суббота, 28 Август 2010

Про render согласен, но вот про defaultAction рассказано, а про missingAction нет. IMHO єто напрямую касается понимания как работает контроллер.

Вы рассказали о поведении контроллера, когда:
- єкшн есть;
- єкшн не указан;

а вот что будет, когда указанный єкшн отсутствует?

P.S. я понимаю, что не мне решать о чем писать в статье, а что опустить и что обо всем не расскажешь, но хотелось бы общими усилиями сделать материал более полезным...

[guest] Гость

Было сказано: Суббота, 28 Август 2010

добавь блок рекламных объявлений от яндекса или гугла. буду щелкать когда статья понравится

[guest] zolter

Было сказано: Воскресенье, 29 Август 2010

to hyzhak
все верно, добавлю завтра! спасиб

[guest] zolter

Было сказано: Воскресенье, 29 Август 2010

to Гость
спасибо, но лучше не буду загружать блог рекламой. много не заработаю, а посетителей будет бесить :)

[guest] Гость

Было сказано: Понедельник, 30 Август 2010

"Контроллер сам по себе это сердце логики вашего приложения"
Сердце логики любого MVC приложения это модель.

echo file_get_contents($_GET['news_name'] . ".txt");

Уязвимость?

[guest] zolter

Было сказано: Понедельник, 30 Август 2010

Модель это всего лишь логика работы с базой. Приложения без базы, которые используют модель как CForm для вывода табличек - я сердцем не считаю. Тогда как раз контроллер связывает модель и отображения + содержит в себе всю логику приложения.

По поводу примера - да, я же написал что это уязвимость :)

[guest] den

Было сказано: Четверг, 02 Сентябрь 2010

Ух ты! между этой статьёй и прошлой год разницы. Я как-то прочитал все статьи одним махом и теперь придётся ждать следующих. Или наверное сам разберусь :)
Приятно пишете, как раз хотел получить информацию в таком виде, в других местах чего-то не хватало.
Пишите больше и чаще (по крайней мере на эту тему). Удачи вам и спасибо.

[guest] zolter

Было сказано: Четверг, 02 Сентябрь 2010

Спасибо за хороший отзыв. Постараюсь уделять на статьи больше времени, особенно на обучающие

[guest] SergO_Cz

Было сказано: Понедельник, 13 Декабрь 2010

Насчет новостей в GET-параметре, вот эта строчка не работает и ни на что не влияет:

'news/<news_name:.*?>'=>'hello/news',
,
есть она, или нету - ошибка 500 и сообщение, что нет такого параметра "news_name".
Когда я решил посмотреть, что же там в массиве $_GET:
  
public function actionNews()
{
echo 'Вы открыли новость: ';
print_r($_GET);
}

, оказалось следующее (адрес >>> вывод на экран):
1) mysite.ru/news/a >>> Вы открыли новость: Array ( [a] => )
2) mysite.ru/news/a/b >>> Вы открыли новость: Array ( [a] => b )
3) mysite.ru/news/a/b/c >>> Вы открыли новость: Array ( [a] => b [c] => )
4) mysite.ru/news/a/b/c/d >>> Вы открыли новость: Array ( [a] => b [c] => d )
и.т.д.,
что это - моя ошибка, или статья немного устарела? (Yii 1.1.5)

[guest] Андрей

Было сказано: Понедельник, 13 Декабрь 2010

Здравствуйте, читал читал, решился всё-таки попробовать, поставил и тут опа! маленький курьёз
The table "{{post}}" for active record class "Post" cannot be found in the database
Или может я пропустил где то донастройку БД?
ЗЫ Присоединюсь к поблагодарившим, приятная манера изложения!

[guest] zolter

Было сказано: Вторник, 14 Декабрь 2010

Добрый вечер,
А таблица post в базе есть? Может забыли sql код запустить на её создание?

[guest] Дмитрий

Было сказано: Пятница, 28 Январь 2011

Спасибо за Ваш блог! Очень понравился фреймворк Yii. Сейчас использую Codeigniter и cakePHP. Но обучение и примеры у Вас заставляют изучить замечательный Yii. Долгих лет жизни!

[guest] zolter

Было сказано: Пятница, 28 Январь 2011

Спасибо!

[guest] Гость

Было сказано: Воскресенье, 06 Февраль 2011

Приветствую!
не мог не написать..
Грамотный подход, ничего лишнего.
Спасибо за доходчивое обучение!

[guest] cruser

Было сказано: Вторник, 08 Февраль 2011

Присоединюсь к вопросу SergO_Cz. Есть ли разница в создании правил в Yii версии 1.1.5(6) и более ранних версиях(1.0.х)?
Спасибо.

[guest] Гость

Было сказано: Среда, 16 Март 2011

Здравствуйте.
Столкнулся со следующей проблемой:
Поставил Yii на виртуальный сервер и делал все по инструкции. И после создания контролера, как описано в этой статье, адрес: http://127.0.0.1/hello/world, упорно не открывался.
Долго мучился и чисто случайно попробовал адрес: http://127.0.0.1/index.php/hello/world, который наконец то открылся.
Кто-нибудь знает с чем это может быть связанно? Может я что-то неправильно настроил?

[guest] Maxx

Было сказано: Четверг, 17 Март 2011

Попробуйте эту статью http://www.dbhelp.ru/how-to-remove-indexphp/page/

Если не поможет - значит у вас отключена работа htaccess в апаче, и её надо включить.

[guest] Гость

Было сказано: Четверг, 17 Март 2011

Maxx, спасибо разобрался.

[guest] Гость

Было сказано: Среда, 23 Март 2011

Долго я искал внятного хелпа для начинающих по Yii. Думаю, что нашел. Спасибо Вам, и пожалуйста пишите еще)

[guest] sidan

Было сказано: Пятница, 29 Апрель 2011

Извините, мож я где-нибудь что-нибудь не понял...
Добавил прописал .htaccess, чтобы адрес был без index.php.
Прописал в config/main.php, чтобы были красивые урлы.
Однако для обращения к странице приходиться прописывать https://mysite.ru/?r=news/num
Где я ошибся?

[guest] Гость

Было сказано: Пятница, 29 Апрель 2011

Ну https не обязательно, прост по привычке...

[guest] Гость

Было сказано: Понедельник, 15 Август 2011

Извините, не могу понять в чем проблема..
Ссылка типа www.mysite.ru/news/my_test_news не работает, а если написать www.mysite.ru/news/=my_test_news и в правиле 'news/<news_name:.*?>'=>'hello/news добавить равно перед именем новости 'news/=<news_name:.*?>'=>'hello/news то все работает нормально..Подскажите в чем проблема. Использую Yii_1.1.8
Заранее, спасибо!

[guest] Maxx

Было сказано: Понедельник, 15 Август 2011

Скорее всего конфиликт с другим каким то правилом, покажите весь url конфиг

[guest] Гость

Было сказано: Понедельник, 15 Август 2011

Сделал все как описано выше,в итоге получилось
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'post/<id:\d+>/<title:.*?>'=>'post/view',
'posts/<tag:.*?>'=>'post/index',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
'news/<news_name:.*?>'=>'hello/news',
),
),
Проблему я уже рассказал. Помогите))

[guest] Maxx

Было сказано: Среда, 17 Август 2011

Перенеси правило:
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
под
'news/<news_name:.*?>'=>'hello/news',
и должно заработать.

[guest] Гость

Было сказано: Среда, 17 Август 2011

Maxx, огромное тебе СПАСИБО!:)

[guest] MegaRocks

Было сказано: Пятница, 09 Сентябрь 2011

Таже самае беда что и у SergO_Cz.
После того как передаю чрез строку броузера значение:
например:
http://www.yiiapp/hello/news/Hello
получаю массив:
Array ( [Hello] => )
т.е таким способом передаётся не значение, а ключ...
при этом если явно передавать переменную news_name:
http://www.yiiapp/hello/news/?news_name=Answer
получаю такой массив:
Array ( [news_name] => Answer )
и всё работает. В чем же дело?
yii-1.1.8

[guest] Megarocks

Было сказано: Пятница, 09 Сентябрь 2011

Сам разобрался.
Дело в том что правило нужно задавать в формате:
'hello/news/<news_name:.*?>'=>'hello/news',
И тогда есть и контроллер и его экшн и переменная, а вот за ними всеми уже идёт её значение.

[guest] Гость

Было сказано: Воскресенье, 25 Сентябрь 2011

Отличная статья! Спасибо.
Тоже наткнулся на пару грабель, таких как: частные правила в urlManager нужно писать НАД общими (тупил минут 20 =) и что бы убрать index.php из урла необходимо создавать правила для модреврайта в .htaccess. Желательно об этом упомянуть или хотя бы дать ссылку на решение.
ПС. Ещё не сказано, что БД должна быть подключена (делается в том же config/main.php). При установке по умолчанию SQL Lite кажись.

StrikerWolf

Было сказано: Вторник, 24 Январь 2012

zolter Help!!! Я скопировал все содержимое папки blog в корень каталога где лижит и сам Yii (в качестве хоста использую Denwer 3, Yii framework 1.1.9 v.). Потом прохожу по соответствующему адресу и тут же получаю две ошибки:

Warning: require_once(W:\home\site.ts\www/../../framework/yii.php) [function.require-once]: failed to open stream: No such file or directory in W:\home\site.ts\www\index.php on line 10

Fatal error: require_once() [function.require]: Failed opening required 'W:\home\site.ts\www/../../framework/yii.php' (include_path='.;/usr/local/php5/PEAR') in W:\home\site.ts\www\index.php on line 10

Я только начинаю изучать этот frmework. И решил что лучше спросить у знающего чловека.

З.Ы. ничего не менял в коде файлов. тольк скопипастил их и все.

[guest] zolter

Было сказано: Вторник, 24 Январь 2012

Так все просто, у тебя фреймворка найти не может.
Открой файл index.php что в корне у тебя должен быть, найди там:

$yii=dirname(__FILE__).'/../../framework/yii.php';

и замени на:

$yii=dirname(__FILE__).'/yii-1.1.9.r3527/framework/yii.php';

StrikerWolf

Было сказано: Вторник, 24 Январь 2012

Спасибо zolter! Все работает теперь, немного ругается на БД точнее на отсутствие пока оной ))). Поражен столь быстрым ответом, за это отдельный respect тебе!!!!

[guest] zolter

Было сказано: Вторник, 24 Январь 2012

Нет проблем :) По умолчанию ДБ для блога стоит sqlite, поэтому у тебя и ругается. В Денвере по умолчанию оно не включено, надо дополнительно через сайт качать ставить и в php.ini включать. А вот с мускулом будет работать без проблем.

В config/main.php поменяешь что б работал с mysql
в папке date найдешь дамп базы и загрузишь его в базу и все будет гуд. Удачи!

[guest] zolter

Было сказано: Вторник, 24 Январь 2012

Качай http://www.denwer.ru/packages/php5.html
А в php.ini раскоментруй extension=php_pdo_sqlite_external.dll
и заработает отлично с sqlite. (не забудь грузануть денвер)

[guest] StrikerWolf

Было сказано: Среда, 25 Январь 2012

Спс! Сегодня после работы дома попробую обязательно.

[guest] Студент

Было сказано: Вторник, 03 Апрель 2012

вот полезная урла: http://yiiframework.ru/doc/guide/topics.url

[guest] mukolla

Было сказано: Вторник, 26 Июнь 2012

порядок записи правил для разбора URL действительно имеет значение!

Автому спасибо за статью, но обязательно необходимо упомянуть о том что нужно убрать index.php и порядке записи правил

[guest] ky61k

Было сказано: Воскресенье, 09 Июнь 2013

mysite.ru/index.php/hello/world - Так работает..

mysite.ru/hello/world - а так нет..

[guest] ky61k

Было сказано: Воскресенье, 09 Июнь 2013

Прочитал коменты..
Разобрался..
Спасибо.

[guest] Гость

Было сказано: Понедельник, 07 Октябрь 2013

Хорошая статья, поправьте пожалуйста везде "экшин" на "экшн". Ошибка мешает восприятию и портит общее положительное мнение о статье

[guest] Гость

Было сказано: Понедельник, 02 Июнь 2014

Самое то для начинающих !
Автору +100 в карму.

[guest] Гость

Было сказано: Четверг, 13 Апрель 2017

<a href=http://x-bases.ru><img>http://x-bases.ru/promo/x-bases.ru.jpg</img></a>

Теперь вашему вниманию хочу предложить уникальный магазин с товарами для вебмастеров всех категорий, будь то белые или чёрные способы внутренней и внешней оптимизации. В магазине <a href=http://x-bases.ru>x-bases.ru</a> предоставлен великий ассортимент товаров необходимых для успешной работы сеошника. О всех обновления вы можете узреть из этого топика.

[guest] Гость

Было сказано: Четверг, 08 Февраль 2018

<a href=https://child-blog.ru/beremennost/problemy/tsistit-vo-vremya-beremennosti.html>Цистит во время беременности</a>
<a href=https://child-blog.ru/beremennost/problemy/tsistit-vo-vremya-beremennosti.html><img>https://www.skalpil.ru/uploads/posts/2012-12/kosoglazie-u-detey-do-goda.jpeg</img></a>
Боли при мочеиспускании, частые походы в туалет, плохое самочувствие... Это симптомы цистита, который может доставить неприятности будущей маме.
<a href=https://child-blog.ru/beremennost/pervoe-shevelenie-krohi.html>Цистит во время беременности</a>
___123___Шаг 5 : Контроллер (Первые шаги) yii framework blog - маленький блог___123___
Какие пить травы, чтобы забеременеть?
Быть матерью – это мечта каждой женщины, но далеко не у всех эта мечта легко сбывается. Некоторые женщины из-за проблем со здоровьем не могут зачать ребенка. Они обращаются в специализированные клиники к врачам, чтобы те назначили им лекарства, способствующие наступлению беременности. Но кроме дорогих медицинских препаратов, в решении этой проблемы могут пригодиться народные средства. В частности прием трав, помогающих забеременеть. В этой статье мы рассмотрим основные принципы лечения травами, какие необходимо принимать травы, чтобы забеременеть, как их заваривать и правильно употреблять.
Женское бесплодие и травы.
Травы – эффективное средство для лечения женского бесплодия, но только если их правильно принимать. Для этого надо строго соблюдать дозировку, не пропускать время приема, и пить их регулярно. Прежде чем женщина решит, какие травы пить, чтобы забеременеть, она должна знать, в чем именно причина ее неспособности зачать, так как разные травы по-разному воздействуют на организм: одни нормализируют менструальный цикл, другие стимулируют развитие фолликулов в яичниках, третьи стабилизируют гормональный баланс в организме. Поэтому, чтобы лечение народными средствами было эффективным и дало результат женщине нужно предварительно обследоваться у гинеколога.
Мало быть в курсе того, какие травы помогают забеременеть, надо знать, как их правильно принимать. Далее мы разберем основные принципы лечения бесплодия травами:
Лечение травами – продолжительный процесс. Быстрого улучшения состояния не будет. Первые результаты появятся не ранее чем через 3-4 недели регулярного приема настоя трав. Обычно один курс лечения длится от одного до трех месяцев. Если беременность не наступила, то через несколько месяцев травы начинают пить снова. Нежелательно пить травы во время менструального цикла. Нельзя одновременно принимать фитогормоны и лекарственные гормональные препараты. Прежде чем начинать пить травы, чтобы забеременеть, надо четко знать для чего пьется та или иная трава, и какие противопоказания к ее приему. При лечении бесплодия с помощью трав необходимо раз в три месяца после окончания курса лечения делать УЗИ матки и яичников, а также сдавать кровь для определения уровня гормонов в организме. Чтобы приготовить эффективный настой, травы надо заливать горячей водой (примерно 70–80 градусов), и ни в коем случае нельзя использовать для этого крутой кипяток. Если для отвара необходимо, чтобы травы помогающие забеременеть некоторое время прокипели, то лучше всего делать это на водяной бане, а не на открытом огне. Для создания спиртовых настоек рекомендуется использовать медицинский спирт, а не водку.
Соблюдение вышеперечисленных рекомендаций сделает прием трав для лечения бесплодия более действенным. Конечно же, перед приемом любого лекарственного средства, даже гомеопатического, необходимо проконсультироваться с врачом. Так как самовольный и бесконтрольный прием травы, чтобы забеременеть, может привести не к долгожданному зачатию ребенка, а наоборот – ухудшить состояние здоровья женщины.
Какие травы помогают забеременеть?
Народные средства для лечения бесплодия не менее эффективны, чем лекарственные препараты. Надо только знать какие травы пить, чтобы забеременеть. Далее мы рассмотрим, чем полезна каждая трава, а также как ее правильно заваривать и пить:
Боровая матка. В гинекологии эта трава применяется для лечения нарушений менструального цикла, эрозии шейки матки, спаек и непроходимости маточных труб, инфантильной матки, фибромиом, миом, кист яичников, эндометриоза. Для приготовления отвара необходимо 1 столовую ложку травы залить 250 мл горячей воды и кипятить в течение 10-15 минут. Затем надо выключить огонь под посудой и дать отвару настояться в течение 4 часов. Далее настой процеживают и принимают по одной столовой ложке 4-5 раз в день. Шалфей. Содержит фитогормоны похожие на эстрогены, стимулирует рост эндометрия и фолликула в первой фазе менструального цикла, улучшает продвижение сперматозоидов в матке. Считается очень действенной травой, чтобы забеременеть. Дабы заварить траву, нужно в кастрюлю насыпать одну столовую ложку листьев шалфея, залить их стаканом горячей кипяченой воды и закрыть крышкой. Через 15 минут настой процедить и принимать по 1/4 стакана 3-4 раза в день за 20 минут до еды. Лучше всего ежедневно заварить свежую порцию отвара. Радиола четырехленная (Красная щетка). Данная трава эффективно помогает при лечении мастопатии, эндометриоза, эрозии, миомы, кист яичника, заболеваний щитовидной железы. Считается хорошим иммуномодулятором и адаптогеном. Заваривать эту траву лучше всего в термосе следующим способом: одну столовую ложку измельченных корней растения залить стаканом горячей кипяченой воды. Дать настояться в течение 15 минут, затем процедить и принимать 2-3 раза в день по 1/3 стакана. Готовый настой надо хранить в холодильнике, но не более двух суток. Один курс лечения длится от 30 до 45 дней. Спорыш. Нет более действенной травы, чтобы забеременеть, чем спорыш. Эта трава стимулирует работу яичников, а это, в свою очередь, увеличивает вероятность зачатия малыша. Спорыш можно принимать двумя способами. Первый способ – заварить как обычный чай: положить в заварочный чайник столовую ложку измельченной сухой травы и залить 200 мл горячей кипяченой воды. Когда настоится (примерно через 15-20 минут) пить отвар в течение дня вместо воды в объеме не менее одного литра. Второй способ: в эмалированную посуду насыпать 4 столовых ложки спорыша и залить их 200 мл горячей воды, оставить настаиваться на два часа. Полученный отвар принимают по 100 мл дважды в сутки. Один курс лечения продолжается три месяца. В случае если женщина, принимающая траву, забеременела, прием настоя спорыша надо сразу же прекратить.
Надеюсь, эта статья ответила на ваш вопрос: «Какие травы помогают забеременеть?». Мы рассмотрели основные принципы эффективного лечения травами и самые действенные травы, помогающие забеременеть. Регулярный их прием поможет женщине зачать ребенка.
<a href=https://child-blog.ru/beremennost/beremennost-intim-predlagat.html>Цистит во время беременности</a>
https://child-blog.ru - Беременность, роды, мама и дети. Календарь беременности по неделям

[guest] Гость

Было сказано: Вторник, 13 Март 2018

Смартфон OnePlus 5t - отзывы. Новинка oneplus 5T. Достоинства: Отличный экран, достойный аккумулятор, очень шустрый, царские камеры, пыле-влагозащита,face id. Недостатки: Нет 3.5 jack, царапается
<a href=https://4apk.ru/gadgets/samsung/obzor-samsung-galaxy-j3-2017-byudzhetnyj-smartfon-s-horoshej-kameroj-i-vspyshkoj.html>самсунг j3</a>
<a href=https://4apk.ru/gadgets/apple/iphone-x-obrushil-tseny-na-iphone-8.html><img>http://cdn02.androidauthority.net/wp-content/uploads/2012/06/best-free-android-apps-banner-image-120601.jpg</img></a>
Смартфон OnePlus 5t - отзывы. Новинка oneplus 5T. Достоинства: Отличный экран, достойный аккумулятор, очень шустрый, царские камеры, пыле-влагозащита,face id. Недостатки: Нет 3.5 jack, царапается экран. Много впечатлений от этого красавца, внимание, на голом андроид. Задняя панель он один в один, как oneplus 5. Но вот экран занимает 88 проц. передней панели. Стекло горилла глас 5, но царапины неизбежны. На что. Смартфон OnePlus 5t честный отзыв. Достоинства: звук, снимает неплохо. Недостатки: переключатель звука,наэкранные кнопки. Всем привет, отзыв об телефоне One Plus 5t. Телефоном не пользуюсь уже полгода, у телефона есть как сильные стороны, которых очень много, но также есть и слабые. Телефон конечно классный, шикарный но свои косяки в. Смартфон OnePlus 5t Мой опыт использования. Достоинства: дизайн, внешний вид, материалы корпуса и сборка, дисплей, объемы памяти, игровая производительность, связь, камеры, звук. Недостатки: время жизни от одного заряда, прошивку, нагрев. Всем привет, смартфон OnePlus 5 был лучшим смартфоном который я когда-либо держал в руках. про OnePlus 5Т такого сказать не могу. Аппарат меня полностью разочаровал я не буду его использовать в качестве своего основного, и. Безупречность с капелькой дегтя. Достоинства: Экран. Операционка. Автономность. Скорость зарядки. Производительность. Скорость мобильных сетей. Скорость нахождения спутников. NFC. Недостатки: Калибровка клавиатуры и кнопок управления (не критично, дело привычки. ) Плюс ожидается добавление управления жестами, подобными как в iph x. Шикарный флагман. Производительность просто нереально радует. Играю в hearthstone и Guns of Boom, позалипал в асфальт 8й и самое интересное, что во все это поиграл в один день, на работе, после работы, приехал домой и. Доволен, а мне есть с чем сравнить! Достоинства: Скорость работы, долгая работа батареи. Недостатки: Нет аксессуаров, проблемы текущей прошивки. Когда пришло время сменить свой телефон на новый, обратился к друзьям, понимающим толк, но сначала немного предыстории пользования различными марками смартфонов: Знакомство с айфонами началось с модели 4S. Сначала все очень нравилось, но спустя год. Хороший смартфон. Достоинства: Цена и качество. Здравствуйте, друзья! Не так давно приобрела себе отличный смартфон Oneplus 5t, про который собственно и хочу вам немного рассказать. Т. к. мне телефон нужен для работы, мне необходима постоянная связь, почта, Скайп. Батарею держит хорошо. Интересен лишь на первый взгляд! Достоинства: Чуть улучшенная камера. Недостатки: Сканер отпечатка пальцев, наэкранные кнопки. Сам я пользователь OnePlus 5, перед покупкой своего смартфона думал не спешить так как знал что выйдет версия "t", она как показывал прошлый опыт имела в себе улучшения по сравнению с прошлой моделью. Но как.
https://4apk.ru/gadgets/samsung/samsung-galaxy-s7-i-s7-edge-poluchat-interfejs-kak-v-s8.html
meizu m6 note зеленый
<a href=https://4apk.ru/gadgets/samsung/samsung-galaxy-note-8-vovsyu-nachali-obnovlyatsya.html>прошивка oreo для один на galaxy note 8 n950f</a>

[guest] Гость

Было сказано: Пятница, 16 Март 2018

Когда выйдет обновление Android 8.0 Oreo для Samsung Galaxy S7? В конце августа стала публично доступна версия Android 8.0 Oreo. Моментально вышли обновления для Nexus и Pixel-устройств, а также
<a href=https://4apk.ru/gadgets/gother/anons-blackview-bv9000-dostupnaya-versiya-udaroprochnogo-polnoekrannika.html>blackview bv9000</a>
<a href=http://4apk.ru/gadgets/samsung/gde-u-galaxy-s9-skaner-otpechatkov-paltsev.html><img>http://yaandroid.ru/uploads/posts/2015-01/1421778550_androidapple.jpg</img></a>
Когда выйдет обновление Android 8.0 Oreo для Samsung Galaxy S7? В конце августа стала публично доступна версия Android 8.0 Oreo. Моментально вышли обновления для Nexus и Pixel-устройств, а также некоторые анонсированные новинки выходили на рынок сразу же с последним "зеленым роботом". Но когда Android Oreo получат не самые новые смартфоны, например, Samsung Galaxy S7? Но к сожалению, кроме цифр есть еще реальное положение дел. Некоторые отчеты показывают, что Samsung потребуется некоторое время на тестирование Android Oreo, поэтому пользователи получат обновление только в середине 2018 года. Однако Google достаточно сильно упрекает производителей в долгой оптимизации своих оболочек, поэтому сомнительно, что релиз задержится на такой долгий срок.
https://4apk.ru/gadgets/huawei/obzor-huawei-p-smart-pochti-idealnyj-bystryj-no.html
cat s60
<a href=https://4apk.ru/gadgets/huawei/obzor-huawei-p-smart-pochti-idealnyj-bystryj-no.html>huawei p smart</a>

[guest] Гость

Было сказано: Понедельник, 16 Апрель 2018

Этот портал сумеет ознакомить всякого собственника или владелицу жилища с секретами и предписаниями проведения какого-либо ремонтных работ в доме. Ещё именно тут вы имеете возможность ознакомиться с обилием разных стилей дизайна, в разнообразии каковых сможет запутаться даже эрудированный человек.
Так как, важную причину, как в интерьере помещения, так и в дизайне помещений выполняет мебель, на нашем веб-сайте предусмотрена группа подборок в разделе «Мебель». Именно тут всякий сумеет почерпнуть информацию, каким способом отлично выбрать тот или иной элемент предметов мебели и как выгодно его применять, какая мебель сможет соответствовать тому, или иному дизайну.
Также как без обстановки, так и без хорошего освещения, ни одна жилая квартира не может быть считаться образцовой. Правильно выбранное и установленное освещение сумеет отдельно обратить внимание и выдвинуть на первый план какой-нибудь составная часть интерьера помещения, а также прямо воздействовать на качество зрения и здоровье ваших глаз.







<a href=http://apartrepair.ru/soveti/stenovie-bloki-dlya-naruzhnich-sten-vidi-i-primenenie.html>стеновые блоки для наружных стен</a>

Оставить комментарий


Код:
Имя: