Как на счет создать что-то типа русской cookbook? Я вот например прочитал основы, но пока не вкурил, с чего, собственно, начать-то) Раньше фреймворки не использовал, поэтому достаточно тяжело въезжаю…
Как на счет создать что-то типа русской cookbook? Я вот например прочитал основы, но пока не вкурил, с чего, собственно, начать-то) Раньше фреймворки не использовал, поэтому достаточно тяжело въезжаю…
Скачать Ыыы отсюда http://www.yiiframework.com/download/ и распаковать в какую-либо папку.
Если распаковываешь сразу на сервер с Linux, то прописать права доступа 755 для [куда_распаковал]/framework/yiic.php
Если под Windows (denwer), то корректируешь файл [куда_распаковал]\framework\yiic.bat:
находишь строчку, начинающуюся с
if "%PHP_COMMAND%" == ""
и дописываешь туда
set PHP_COMMAND=[диск_монтируемый_денвером]:usrlocalphp5php.exe
например: yiic webapp ./…/myapp1
А дальше начинается самое интересное…
Надо разбираться с контроллерами, отображениями, моделями и прочим согласно документации.
Вобщем, на сколько я понял - дальше наш путь лежит в [относительный_путь_к_приложению]/protected/, где все и лежит.
Абсолютно верно. В Definitive guide написано как создать первое приложение, рассказано про доступ к БД, есть прмер создания формы с валидацией, всеми делами, можешь начать с нее.
А вообще, задаешь конретные вопросы - получаешь конкретные ответы.
про то как поставить настроить и запустить firstapp я разодрался как раз)) А вот что делать дальше - хз. Ну например мне нужно чтобы из базы табличка заполнялась… Как это сделать правильно с учетом МВЦ и используя классы йии?.. Сейчас попробую проштудировать Дефенетив…
А ты почитай первый раздел. Он есть на русском. Просто создай базу, там таблицу. После этого через yiic shell - модель и CRUD - контроллер и представления для этой таблицы. Ну и дальше смотри как сделано, делай так же.
хм… А если мне например некоторую обработку нужно? Вот например в "Первом приложении" создается модель Юзер, которая, как я понял ни с чем кроме своей таблицы не завязана… Попробую объяснить на модели Юзер что мне непонятно…
Почему именно model User? Т.е. имя User потому что у нас таблица так называется или мы используем какой-то шаблон фреймворка с именем Юзер?
Откуда фреймворку при создании модели известно, что нам нужны такие функции, как New User и Manage Users. Есть какие-то значения по умолчанию?
Почему они именно так называются? Т.е. где прописано
echo("...>New User<...")
Почему class User это потомок CActiveRecord? Всегда ли создаваемый класс должен быть чьим-то потомком? Как быстро определить какой именно класс-предок нужно использовать дляя той или иной задачи?
Во view часто используется конструкция
CHtml::...
Что это за CHtml? Где он описан? Как я понимаю он подставляет значения - результат выполнения какой-то функции… Как мне увидеть все стандартные функции и их описания?..
Вот вроде бы все, что могу спросить на вскидку…
П.С. Заранее извиняюсь, если какие-то вопросы покажутся тупыми или примитивными. Я раньше не работал с фреймворками и моделью МВЦ.
Мда… Объемные вопросы.
Во-первых идем вот сюда и читаем, что такое модель MVC
http://ru.wikipedia…View-Controller
Теперь по вопросам:
Так вот, для того чтобы работать с данными, ты генерируешь модель, название класса которой соответствует названию таблицы. (А исходя из соглашений (http://www.yiiframework.com/doc/guide/ru/basics.convention) - это слово с большой буквы)
[*]Все что касается оформления, в том числе и это находится в представлении (View). В каждом действии (по умолчанию выполняется действие list) последней строчкой обычнои идет
[/list]
$this->render(‘viewName’, $params)
$params - это параметры, которые передаеются представлению. Это ассоциативный массив, ключи этого массива будут переменными в представлении. Посмотри как это сделано в примере, станет яснее.
(http://ru.wikipedia.org/wiki/Шаблоны_проектирования)
Active record - http://en.wikipedia…_record_pattern
Еще - http://habrahabr.ru/blogs/ruby/11525/
Не всегда создаваемій класс должен быть потомком, но в большинстве случаев удобно наследовать готовую функциональность. Ты же в большинстве случаев либо свое действие будешь создавать, либо модель, либо контроллер илиеще кучу всякого разного что есть в Yii. Конечно, тебя никто не ограничивай - пиши что хочешь. Но ознакомься сначала с тем что есть.
Чтобы обпределить, какой класс тебе нужен, надо посмотреть, что в Yii уже есть. Смотри доки по АПИ (http://www.yiiframework.com/doc/api/), читай ПОЛНОСТЬЮ Definitive Guide - зря что ли переводили
Ты ж не читал даже того что переведено до конца! В общем надо знать, что есть уже готовое. Не забудь посмотреть на существующие реасширения (http://www.yiiframework.com/extensions/)
Главная рекомендация - почитай гайд. Весь. Разберись как функционирует контроллер, компонент и т.п.
Разберись с паттернами, которые используются - Active Record, Controller, MVC. Ты должен понимать, как это работает, чтобы грамотно использовать.
Вперед!
Спасибо. Буду штудировать доки)))
Меня интересует одна вещь, прочитал дефинитив гид и не увидел ни слова или примера каким образом реализовать фронтэнд и бэкэнд таким образом чтобы не дублировать код и не поднимать в фронтэнде код нужный только для бэкэнда. Грубо говоря как нормально и удобно реализовать админ часть при этом не утяжеляя клиентскую.
Фреймворк мне понравился но есть, на мой взгляд, недоработанные места, например не хватает некоторых вещей которые есть в Joomla:
JUri более функционален чем CUrlManager при работе с частями URL
JRequest полностью абстрагирует от работы с такими РНР массивам как $_GET, $_POST и т.п. К тому же он сразу производит очистку входящих данных с помощью JFilterInput
Вот возник ещё вопрос один…
Суть - хочу сделать ссылку на imdex.php?r=user (которое создается в first application) и чтобы она была видна только залогинившимся.
В test\protected\views\layouts\main.php
<?php $this->widget('application.components.MainMenu',array( 'items'=>array( array('label'=>'Home', 'url'=>array('site/index')), array('label'=>'Contact', 'url'=>array('site/contact')), array('label'=>'Login', 'url'=>array('site/login'), 'visible'=>Yii::app()->user->isGuest), array('label'=>'Logout', 'url'=>array('site/logout'), 'visible'=>!Yii::app()->user->isGuest), ), )); ?>
Изменяю на
<?php $this->widget('application.components.MainMenu',array( 'items'=>array( array('label'=>'Home', 'url'=>array('site/index')), array('label'=>'Contact', 'url'=>array('site/contact')), array('label'=>'Login', 'url'=>array('site/login'), 'visible'=>Yii::app()->user->isGuest), array('label'=>'Logout', 'url'=>array('site/logout'), 'visible'=>!Yii::app()->user->isGuest), array('lable'=>'Manage Users', 'url'=>array('user'), 'visible'=>!Yii::app()->user->isGuest) ), )); ?>
Но
Вопрос в том, чтобы
Код надо писать внимательно. Текст не показывается просто потому что ошибка при написании ключа - lable вместо label
Надо внимательно смотреть на то, что уже написано. Вторым параметром идет массив, в котором первое - это путь (в формате котроллер/действие), а потом идет ключ-значение (переменная-значение), которые будут дописваться в строку адреса)
Надо написать просто array('user/list') и все будет работать.
Можно, конечно, тупо проверить по логину, но этот вариант потом не может быть расширен.
Решить вопрос с разными линками просто так нельзя, надо формировать твой урл в контроллере, а в представление передавать просто переменую, в которой он будет. Вобщеговоря, эту логику можно разменстить и в представлении, но это противоречит концепции MVC.
спасибо. с 1 это я протупил))
Я когда читал про CI, пользовался чьим-то блогом, в котором чел писал, как писать блог…
Добавление/удаление/редактирование/вывод записей (постраничный + навигация)
Календарь
Добавление/удаление/вывод комментариев
Авторизация
Привинтить FCKeditor (наверное, самое простое)
Думаю, нечто подобное для Ыыы было бы не только интересно, но и полезно.
А тут неинтересно - пример блога уже есть
Кроме того в англоязычном (официальном) кукбуке описаны ряд примеров и постоянно добавляются новые.
Quote
Хм… что-то я его не нашел. Может, называется иначе?
Ссылочка, может есть?