Заготовка фреймворка
1.
KpuTuK (14.02.2014 / 17:03)
Всем привет!
Пока не было интернета делать практически было не чего.
Идей тоже не было.
Вот я и решил написать очередной фреймворк.
Это только так сказать "наброски".
Для работы требуется версия php 5.3(сейчас уже переписываю на 5.4)
Критикуем:
http://up.wen.ru/zCNPyQ
2.
Изнаур (14.02.2014 / 17:29)
антивирь ругается на файлообменик,загрузи сюда
3.
KpuTuK (14.02.2014 / 17:33)
Вот архив)))
4.
orel (14.02.2014 / 17:36)
1.
KpuTuK, на laravel не смотрел?
5.
KpuTuK (14.02.2014 / 17:37)
4.
Орёл, нет... тольк CI и кохана)) а что там??
6.
orel (14.02.2014 / 17:47)
5.
KpuTuK, Просто глянул роуты как организованы, думал может laravel используешь.
7.
Кевин Митник (14.02.2014 / 17:48)
Посмотрел. Вобщем неплохо, чего уж там))
Об недочетах, или просто упущениях:
- .htaccess не нужен, если там просто закрыть доступ к папке. php файлы проверяют наличие константы, если ее нет - файл отобразит ошибку при прямом вызове. Вместо .htaccess можно вложить пустой index.html
- контроллеры, модели и представления наверное лучше делать абстрактной фабрикой.
8.
KpuTuK (14.02.2014 / 17:50)
6.
Орёл, вообще _detect_uri писал по аналогу коханы. насчет роутов писал по аналогу ci только без кучи циклов. остальное сам додумывал
Добавлено через 01:48 сек.
7.
Кевин Митник_HHTeam, это то да)) просто хотел прикрыть структуру от чужих глаз
9.
orel (14.02.2014 / 17:55)
KpuTuK, глянь laravel )
10.
KpuTuK (14.02.2014 / 17:57)
7.
Кевин Митник_HHTeam, про абстрактные классы у меня задумка в чем. тк я использую ns'ы и нет необходимости создавать всякие "лоадеры" разработчик сам пишет какой ему нужно абстрактный контроллер. смысл мне писать его сейчас если в нем не будет кода? настройки хотел еще для гибкости сделать в каждом классе свои.
Добавлено через 08:01 сек.
Орёл (14 Февраля 2014 / 17:55)
KpuTuK, глянь laravel )
что то я сходства не заметил))
11.
orel (14.02.2014 / 19:14)
10.
KpuTuK, я прорекламировал laravel)
12.
KpuTuK (14.02.2014 / 19:35)
11.
Орёл, то на хабре надо)))
13.
orel (14.02.2014 / 21:02)
12.
KpuTuK, Да он и так на первом месте на гите уже
Тынц
14.
KpuTuK (14.02.2014 / 21:11)
14.
Орёл, а тема эта тут при чем???
15.
Кевин Митник (14.02.2014 / 22:45)
чувак, прикрути туда ORM или сам напиши Active Records хотя бы, и с поддержкой NoSql - цены ему не будет)) В той же Кохане есть много интересного, но вот единого интерфейса для работы с SQL и NoSql - пока не видел.
Добавлено через 06:02 сек.
еще совет: опутай все Unit-тестами. Сам не любил, но как-то пришлось, и знаешь, это реально круто))
upd2. а еще комментарии, и комментарии)) потом прогнать документором, и готов guide, по сути.
16.
KpuTuK (14.02.2014 / 23:11)
16.
Кевин Митник_HHTeam, 1 orm и Active Record писать не буду)) во первых долго и муторно во вторых куда мне до той же доктрины (из за чего кстати и не использую как таковые орм фреймворков что толку от них как от козла молока) со временем если вообще он актуален будет доктрину или propel и phpactiverecord заточу и поробую задокумментировать.
NoSql это типа базы данных типа стандартной Database (dbm-style) Abstraction Layer? которая не поддерживает SQL комманд??
коментарии итак пишу по возможности
17.
KpuTuK (15.02.2014 / 02:35)
Документация apigen для тех кому влом смотреть через редактор исходники))
18.
Кевин Митник (15.02.2014 / 03:18)
17.
KpuTuK, да-да, интерфейс для работы с абстрактной БД, которая может быьт как SQL, так и NoSQL
19.
KpuTuK (15.02.2014 / 03:24)
19.
Кевин Митник_HHTeam, ну а зачем? допустим есть проэкт на муксуле в нем порядка 100к записей как Вы собираетесь их переносить?? лишний гемор помоему если уж взяли муксул так смысл переписыать на sqlite... хотя это все равно учту и попробую через query bilder реализовать)))
20.
KpuTuK (21.02.2014 / 23:12)
появилась идея сделать карту роутов
[welcome]
path = "modules\welcome\Welcome_Controller"
actions = "index;act1;act2"
[welcome2]
path = "modules\welcome\Welcome2_Controller"
actions = "index;act1;act2"
и уже исходия из этой карты организовать роутинг)) что вы думаете по этому поводу
21.
KpuTuK (22.02.2014 / 00:25)
карта в ини файле:
[welcome]
default = "welcome"
path[default] = "modules\welcome\Welcome_Controller"
path[user] = "modules\welcome\User_Controller"
actions = "index;"
обработчик сегментов по карте
<?php
private function _fetch_module() {
// загружаем карту модулей
$ini = parse_ini_file(CM_ROOT .'modules/map.ini', TRUE);
// если модуль по первому сегменту найден
if (isset($ini[$this->_segments[0]])) {
// передаем имя модуля переменной
$module = $this->_segments[0];
// разбиваем строку с экшенами
$actions = explode(';', $ini[$module]);
// передаем массив контроллеров переменной
$controllers = $ini[$module]['path'];
// если котроллер по второму сегменту найден
if (isset($controllers[$this->_segments[1]])) {
// записываем его в обьект
$this->controller = $controllers[$this->_segments[1]];
// если экшен по третьему сегменту найден
if (isset($actions[$this->_segments[2]])) {
// записываем его в обьект
$this->action = $this->_segments[2];
return 0;
}
// или если экшен по второму сегменту найден
} elseif (isset($actions[$this->_segments[1]])) {
// записываем котроллер по умолчанию в обьект
$this->controller = $controllers['default'];
// записываем экшен в обьект
$this->action = $this->_segments[1];
return 0;
}
}
}
?>
22.
KpuTuK (02.03.2014 / 11:46)
Закончил разработку MVC системы))
Тестируем!
23.
Виталий (28.06.2014 / 15:31)
если возникнет надобность переопределить метод, к примеру, _detect_uri в классе codemania\core\Request, то ничего не выйдет, т.к. метод приватный. хватит извращаться, смотри в сторону Symfony2.
24.
KpuTuK (22.11.2014 / 00:28)
Виталик Альянс (28 Июня 2014 / 15:31)
если возникнет надобность переопределить метод, к примеру, _detect_uri в классе codemania\core\Request, то ничего не выйдет, т.к. метод приватный. хватит извращаться, смотри в сторону Symfony2.
на то он и приватный))))
тогда легче уж так
https://github.com/KpuTuK/Neiron/tree/master/Neiron/Arhitecture/Kernel
в симфони то как раз на том и построено что просто берется контроль типа а именно обьект класса в обязательном наследующего этот интерфейс. а там уж дальше выбор ложиться на плечи того кто будет переопределять либо он полностью перепишет весь класс либо создаст дочерний существующему. а так как точек вызова именно того класса (в предидущем варианте фреймворка) огромная куча то нет смысла создавать дочерний класс и потом менять на него все вызовы геморно.
25.
iNeeXT (23.11.2014 / 13:45)
Какие новые функции 5.5 использует фреймворк?
26.
KpuTuK (23.11.2014 / 15:27)
iNeeXT (23 Ноября 2014 / 13:45)
Какие новые функции 5.5 использует фреймворк?
пока ни каких)) даже на 5.3 возможно пойдет.
27.
Артур (23.11.2014 / 15:50)
Проблематично оценивать, когда не понимаешь, зачем это нужно ))
28.
KpuTuK (23.11.2014 / 16:08)
27.
Башка, что оценивать?
29.
Артур (23.11.2014 / 16:11)
28.
KpuTuK, ну как бэ ты просил критиковать фреймворк.
30.
KpuTuK (23.11.2014 / 16:15)
29.
Башка, я "тот" (от 14.02.14) просил критиковать)) "этот" (https://github.com/KpuTuK/Neiron/) еще не фреймворк
31.
Артур (23.11.2014 / 16:19)
Ну я то не в курсе ))
URL:
https://visavi.net/topics/40103