Заготовка фреймворка

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"
и уже исходия из этой карты организовать роутинг)) что вы думаете по этому поводу smile

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. klass

24. KpuTuK (22.11.2014 / 00:28)
Виталик Альянс (28 Июня 2014 / 15:31)
если возникнет надобность переопределить метод, к примеру, _detect_uri в классе codemania\core\Request, то ничего не выйдет, т.к. метод приватный. хватит извращаться, смотри в сторону Symfony2. klass
на то он и приватный))))
тогда легче уж так 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