- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
/*
где-то в
/includes.php
*/
function __autoload($class_name) {
if ($class_name[0] == 'm'){
$m = DOCROOT . APPBASE . 'Models/' . substr($class_name,1) . '.php';
if(defined('DEBUG')) echo 'autoload model class'.$m.'<br/>';
require_once $m;
} elseif ($class_name[0] == 'c'){
$c=DOCROOT . APPBASE . 'Controllers/' . substr($class_name,1) . '.php';
if(defined('DEBUG')) echo 'autoload controller class'.$c.'<br/>';
require_once $c;
}
}
/*
где-то в
/Controllers/Data.php
*/
class cData extends controller {
/* ... */
}
/*
где-то в
/Models/Data.php
*/
class mData extends model {
/* ... */
}
каждый программист обязан написать свой MVC и свой ActiveRecord
scalar4eblo4no 15.04.2011 14:02 # +1
ГК или не ГК - зависит от контекста.
istem 16.04.2011 03:44 # 0
значит в скором времени это накладут на govnokod.ru
bugmenot 15.04.2011 14:29 # −2
говным говно
GhOsTMZ 15.04.2011 15:20 # +1
bugmenot 15.04.2011 18:57 # 0
там прямо в тексте написано
guest 15.04.2011 21:55 # 0
bugmenot 15.04.2011 23:08 # 0
поэтому не показательная характеристика
Lure Of Chaos 15.04.2011 23:38 # 0
bugmenot 15.04.2011 23:43 # 0
istem 16.04.2011 03:47 # +3
Lure Of Chaos 17.04.2011 12:09 # 0
telnet 15.04.2011 20:01 # 0
Spider 18.04.2011 13:23 # 0
RomaShka 18.04.2011 06:05 # 0
rO_ot 15.04.2011 15:40 # 0
guest 15.04.2011 21:56 # 0
RomaShka 15.04.2011 22:35 # 0
rO_ot 16.04.2011 02:41 # 0
RomaShka 17.04.2011 11:09 # 0
а оно, оказывается, проверяет, если был создан уже объект, то возвращает его, нет - создает и возвращает )) почти синглтон )))
rO_ot 17.04.2011 12:45 # 0
простая архитектура, есть ссылка например show/post/10
есть маршрутизатор, который по show/post/:id определяет что нужно вызвать такой-то экшн такого-то контроллера, далее инклудится файл с контроллером (не автолоадером) и создается его инстанс, вызывается экшн. Внутри контроллера я могу вызывать кучу разных классов, которые должны грузиться автолоадером, при чем не только модели но и разные хелперы и т п
RomaShka 18.04.2011 07:18 # 0
Lure Of Chaos 15.04.2011 17:08 # 0
guest 15.04.2011 21:58 # 0
Lure Of Chaos 15.04.2011 22:22 # +1
guest 16.04.2011 09:42 # 0
Lure Of Chaos 16.04.2011 10:36 # 0
/Users/Profile/Controller.php - класс Users_Profile_Controller extends Controller
/Users/Profile/Model.php - класс Users_Profile_Model extends Model
/Users/Profile/View.php - класс Users_Profile_View extends View
/Users/Profile/views/main.php - основной шаблон вьюва
/Users/Profile/views/edit.php - шаблон вьюва страницы редактирования
/Users/Profile/js/*.js - подрубаемые жабаскрипты профайла
/Users/Profile/css/*.css - подрубаемые стили профайла
/Users/Profile/img/*.* - картинки, относящиеся только к профайлу.
Так плохо?
rO_ot 17.04.2011 00:43 # 0
Lure Of Chaos 17.04.2011 09:13 # 0
но у меня идея в том, что бы все, относящееся к компоненту, держать вместе в папках с подпапками, вместо разброса по корневым директориям по всему проекту
rO_ot 17.04.2011 00:46 # 0
...
Type\Class
уже можно:)
RomaShka 15.04.2011 22:33 # −1
Lure Of Chaos 15.04.2011 22:38 # 0
а рутеры то тут есть?
RomaShka 15.04.2011 22:43 # −1
понятно, что все, что выходит за рамки "просто id" передается через POST
Lure Of Chaos 15.04.2011 22:45 # 0
rO_ot 17.04.2011 00:45 # 0
RomaShka 17.04.2011 11:17 # 0
APPBASE/Users/add/UserName
приведет к созданию экземпляра класса cUsers и вызову его метода
$this->add('UserName');
Этот метод создаст пользователя и выполнит $this->renderAction('ViewName') или $this->renderJSON($data), что приведет к html- или JSON-выдаче
RomaShka 17.04.2011 11:20 # 0
APPBASE/news/read/navodnenie-v-seo-otdele
guest 17.04.2011 12:41 # 0
rO_ot 17.04.2011 12:47 # 0
RomaShka 17.04.2011 16:12 # 0
Lure Of Chaos 17.04.2011 20:31 # 0
rO_ot 17.04.2011 21:29 # 0
Lure Of Chaos 17.04.2011 21:37 # 0
rO_ot 17.04.2011 23:01 # 0
Lure Of Chaos 17.04.2011 23:16 # 0
rO_ot 17.04.2011 23:21 # 0
Lure Of Chaos 17.04.2011 23:27 # 0
просто там об этом подумано "за нас".
RomaShka 18.04.2011 05:54 # 0
rO_ot 18.04.2011 09:55 # +1
А кеширование писать легко:
$mc = new Memcaсhe;// если демон на локалхосте и 11211 порту, иначе указать куда конектитсья
$mс->set('ключ', 'значение');
echo $mc->get('ключ');
// Только свой мемкеш не нужно писать:)
Lure Of Chaos 18.04.2011 11:01 # +1
RomaShka 18.04.2011 11:22 # 0
rO_ot 18.04.2011 11:24 # 0
RomaShka 18.04.2011 11:30 # 0
Lure Of Chaos 18.04.2011 11:55 # 0
guest 19.04.2011 10:18 # 0
Spider 18.04.2011 13:30 # 0
RomaShka 18.04.2011 13:49 # 0
model реализует подобие ActiveRecord - на уровне выбрать/вставить/листать абстрагирует от БД
controller имеет методы renderAction, renderText и renderJSON
renderAction собирает вид /Views/controllerName/actionName.php
методы возвращают собранный вид, не выводя его. Соответственно можно собрать выдачу нескольких контроллеров на одном общем виде...
RomaShka 18.04.2011 13:58 # 0