Neiron framework
1.
KpuTuK 28.11.2014 / 09:03
Доброе утро уважаемые мастера!
Совсем скоро (сегодня в крайнем случае завтра) состоится первый бета релиз фреймворка Neiron.
Конечно полноценным фреймворком его назвать пока(!) трудно.
Функционал пока скромный, но с каждым днем(!) он понемногу увеличивается.
На данный момент реализовано:
-
Dependency injection контейнер.
- Автоматический загрузчик классов.
- Обработчик роутов.
- Обработчик запросов.
- Управление отсылаемыми заголовками.
- Обработчик Cookie.
- Управление выводом.
Фреймворк имеет свою "жесткую"
архитектуру и поэтому заменить какие либо классы на "свои" не составит особого труда, достаточно реализовать создать дочерний класс или полностью реализовать интерфейсы архитектуры что на ряду с DI контейнером позволит Вам не переписывать 100500 строк кода.
Документация пока в стадии разработки (пока не вышел 1й stable релиз).
Каждый желающий может сделать свой вклад в развитие фреймворка как на гитхабе так и просто покритиковать.
Исходный код доступен на Github
https://github.com/KpuTuK/Neiron
p.s Приложение Hello World
<?php
use Neiron\Kernel\ClassLoader;
use Neiron\Kernel\Neiron;
require_once __DIR__ .'/Neiron/Kernel/ClassLoader.php';
$load = new ClassLoader(__DIR__.'/');
$load->register();
$app = new Neiron();
$app->get('default', '/', function ($param) {
return 'Hello World';
});
$app->run();
2.
Виталий 28.11.2014 / 10:11
не мешало бы следовать стандартам
PSR
я бы мог посодействовать, но лень подстраиваться под тебя
A
crhitecture переименуй в Api, наглядней будет
3.
KpuTuK 28.11.2014 / 10:26
Виталик Альянс (28 Ноября 2014 / 10:11)
не мешало бы следовать стандартам PSR
я бы мог посодействовать, но лень подстраиваться под тебя
Acrhitecture переименуй в Api, наглядней будет
а что же у меня там не по psr?
там нет
с
а вот насчет api надо подумать)))
4.
Виталий 28.11.2014 / 11:05
3.
KpuTuK,
а что же у меня там не по psr?
прочти, поймешь
там нет с
правильно пишется architecture, а не arhitecture
5.
KpuTuK 28.11.2014 / 11:24
Виталик Альянс (28 Ноября 2014 / 11:05)
прочти, поймешь
правильно пишется architecture, а не arhitecture
У меня там все по psr))
сам сразу написать не смог куда уж там мне
----------------------------------
1й beta релиз
https://github.com/KpuTuK/Neiron/releases/tag/28.11.14-beta
6.
Виталий 28.11.2014 / 11:30
5.
KpuTuK, ты даже не соизволил прочесть, а там ведь все на русском

опечатка была, раз не понял
7.
KpuTuK 28.11.2014 / 11:39
Виталик Альянс (28 Ноября 2014 / 11:30)
5. KpuTuK, ты даже не соизволил прочесть, а там ведь все на русском
опечатка была, раз не понял
ну тыкни пальцем где там не по стандарту у меня

(автозагрузка, ns, классы и методы все valid)
я про то, что и ты написал A
crhitecture
8.
Виталий 28.11.2014 / 12:08
7.
KpuTuK,
----
После определения пространства имён (namespace) и после блока импорта пространств имён (use) ДОЛЖНА быть одна пустая строка.
----
Открывающая фигурная скобка в определении класса ДОЛЖНА располагаться на новой строке, а закрывающая фигурная скобка ДОЛЖНА располагаться на следующей строке после тела класса.
---
Открывающая фигурная скобка в определении метода ДОЛЖНА располагаться на новой строке, а закрывающая фигурная скобка ДОЛЖНА располагаться на следующей строке после тела метода.
---
думаю, список можно продолжить.. перечислил лишь то, что бросилось мне в глаза в твоем коде..
я про то, что и ты написал Acrhitecture
я понял. писал же, опечатка
9.
KpuTuK 28.11.2014 / 14:17
Виталик Альянс (28 Ноября 2014 / 12:08)
7. KpuTuK,
----
После определения пространства имён (namespace) и после блока импорта пространств имён (use) ДОЛЖНА быть одна пустая строка.
----
Открывающая фигурная скобка в определении класса ДОЛЖНА располагаться на новой строке, а закрывающая фигурная скобка ДОЛЖНА располагаться на следующей строке после тела класса.
---
Открывающая фигурная скобка в определении метода ДОЛЖНА располагаться на новой строке, а закрывающая фигурная скобка ДОЛЖНА располагаться на следующей строке после тела метода.
---
думаю, список можно продолжить.. перечислил лишь то, что бросилось мне в глаза в твоем коде..
я понял. писал же, опечатка
ну вот опять... говоришь про psr2 а ссылку пишешь на psr0 и psr4)))
а если честно то ну ни как не привыкну к
<?php
class someclass
{
}
к такому синтаксису. даже когда файлы такого вида редактирую включаю "свое" форматирование а потом назад)))
ну а за пробелы после ns еще к стене не ставили)))
p.s PHP Standard
Recommendation а в остальном то все пучком)))
10.
Виталий 28.11.2014 / 19:26
9.
KpuTuK, ты мастер по выносу мозга..
11.
Константин 28.11.2014 / 19:30
Чувак забей, зачем тебе такая головная боль?
Займись лучше фрилансом))
А для всего остального есть laravel, yii, symfony, zend framework, fuelphp, codeigniter, kohana framework, etc.
12.
Антон 28.11.2014 / 19:47
11.
Jahak, про phalcon не знал? Побыстрее будет всего что ты перечислил выше.
13.
Александр 28.11.2014 / 19:52
12, только там намного меньше функционала.
14.
Zдешний 28.11.2014 / 20:00
WmLiM (28 Ноября 2014 / 21:47)
11. Jahak, про phalcon не знал? Побыстрее будет всего что ты перечислил выше.
так же - про phpixie не знал?
Нравится человеку - пусть пишет
15.
Антон 28.11.2014 / 20:09
13.
Муз-ТВ, ой лукавите товарищ, создай плз тему, интересно узнать чего там не хватает. На сколько мне известно он уступает другим фреймворкам тем что он уже скомпилирован, отсюда и вытекает его единственный минус - внести изменения в его код уже нельзя, что уже скоро будет пофиксено во второй ветке.
14.
Zдешний, зачем знать о том что скоро выпадет из обихода?
Извиняюсь за сер в теме..
16.
Александр 28.11.2014 / 20:11
15, а нет всё верно говорю, сравни список возможностей.
Как не крути, а ферймворк на C будет в разы дольше разрабатывается и всегда будет меньше функций по сравнению с php версиями у которых ещё и сообщество больше.
17.
Константин 28.11.2014 / 20:13
12.
WmLiM, знаю я про все более менее популярные PHP фреймворки, я же написал в своем посте etc. (англ.) - и т.д. (и так далее). Просто не стал их все перечислять.
Ну дополню список: Phalcon, CakePHP, Silex, Slim
18.
KpuTuK 29.11.2014 / 00:00
Jahak (28 Ноября 2014 / 19:30)
Чувак забей, зачем тебе такая головная боль?
Займись лучше фрилансом))
А для всего остального есть laravel, yii, symfony, zend framework, fuelphp, codeigniter, kohana framework, etc.
когдато и их вот так делали. а фрилансом то я и не занимаюсь практически ибо хобби. да и терпенения не хватит
WmLiM (28 Ноября 2014 / 19:47)
11. Jahak, про phalcon не знал? Побыстрее будет всего что ты перечислил выше.
а еще yaf есть тоже на C#
Народ, вы глаза то поднимите вверх. Что в названии темы написанно???
19.
Константин 29.11.2014 / 09:31
18.
KpuTuK, не знаю зачем же изобретать, когда уже есть готовые решения. Ведь это пустая трата времени и сил. Мб у тебя есть новые идеи?
20.
KpuTuK 29.11.2014 / 14:19
Jahak (29 Ноября 2014 / 09:31)
18. KpuTuK, не знаю зачем же изобретать, когда уже есть готовые решения. Ведь это пустая трата времени и сил. Мб у тебя есть новые идеи?
мысли глубже)))
- у каждого свой функционал
- у каждого своя реализация того или иного паттерна метода и тд и тп
- у каждого свой стиль оформления кода, структуры и тд и тп
и еще дохрена разных факторов)))
и чем всяких фреймворков больше - тем лучше))) почему?
ну вот допустим у нас всего два фрейморка в мире: кохана и симфони
не знаю зачем же изобретать, когда уже есть готовые решения.
не нравится мне кохана с ее psr0 классами и не подходит симфони т.к. слишком большая для проекта и что теперь?? нужно чтоб было из чего выбириать)))
21.
Константин 29.11.2014 / 15:17
20.
KpuTuK, я правильно понимаю, что тебе не один из выше перочинных фреймворков не нравится и ты начал писать свой?
Допустим мне вот не нравится ни один фреймворк в том числе и твой, ты мне предлагаешь написать свой что-ли?
Я уж лучше приспособлюсь к например кохана и буду писать на нем, чем я буду сидеть и писать свой фреймворк это же такой геморрой((, а если чего-то и не хватает в кохана я лучше его дополню))
22.
KpuTuK 29.11.2014 / 15:27
Jahak (29 Ноября 2014 / 15:17)
20. KpuTuK, я правильно понимаю, что тебе не один из выше перочинных фреймворков не нравится и ты начал писать свой?
Допустим мне вот не нравится ни один фреймворк в том числе и твой, ты мне предлагаешь написать свой что-ли?
Я уж лучше приспособлюсь к например кохана и буду писать на нем, чем я буду сидеть и писать свой фреймворк это же такой геморрой((, а если чего-то и не хватает в кохана я лучше его дополню))
это я просто пример привел)))
Один "многофункциональный" метод или несколько? кто что выбирает?
23.
VITAMIN 29.11.2014 / 15:45
KpuTuK (28 Ноября 2014 / 09:03)
Доброе утро уважаемые мастера!
Совсем скоро (сегодня в крайнем случае завтра) состоится первый бета релиз фреймворка Neiron.
Конечно полноценным фреймворком его назвать пока(!) трудно.
Функционал пока скромный, но с каждым днем(!) он понемногу увеличивается.
На данный момент реализовано:
- Dependency injection контейнер.
- Автоматический загрузчик классов.
- Обработчик роутов.
- Обработчик запросов.
- Управление отсылаемыми заголовками.
- Обработчик Cookie.
- Управление выводом.
Фреймворк имеет свою "жесткую" архитектуру и поэтому заменить какие либо классы на "свои" не составит особого труда, достаточно реализовать создать дочерний класс или полностью реализовать интерфейсы архитектуры что на ряду с DI контейнером позволит Вам не переписывать 100500 строк кода.
Документация пока в стадии разработки (пока не вышел 1й stable релиз).
Каждый желающий может сделать свой вклад в развитие фреймворка как на гитхабе так и просто покритиковать.
Исходный код доступен на Github https://github.com/KpuTuK/Neiron
p.s Приложение Hello World
<?php
use Neiron\Kernel\ClassLoader;
use Neiron\Kernel\Neiron;
require_once __DIR__ .'/Neiron/Kernel/ClassLoader.php';
$load = new ClassLoader(__DIR__.'/');
$load->register();
$app = new Neiron();
$app->get('default', '/', function ($param) {
return 'Hello World';
});
$app->run();
Чем отличается от..
<?php
echo 'Hello World';
24.
KpuTuK 29.11.2014 / 15:57
23.
VITAMIN, всем)))
25.
VITAMIN 29.11.2014 / 16:00
KpuTuK (29 Ноября 2014 / 15:57)
23. VITAMIN, всем)))
Чем всем?
26.
Богдан 29.11.2014 / 16:31
Боян, но все же:
14 стандартов - абсурд
По теме - какие принципиальные отличия от других фреймворков? + использования данного фреймворка в сравнению с другими (Yii к примеру)?
27.
KpuTuK 29.11.2014 / 17:06
G_A_N_J_A_R (29 Ноября 2014 / 16:31)
Боян, но все же:
14 стандартов - абсурд
По теме - какие принципиальные отличия от других фреймворков? + использования данного фреймворка в сравнению с другими (Yii к примеру)?
про стандарты не понял
- Как я уже выразился в 1 посте это жесткая архитектура.
- Не большой вес но максимальный функционал(!в планах)
- Интуитивно понятная реализация (без всяких диспетчеров)
- Русскоязычное сообщество
28.
Богдан 29.11.2014 / 17:51
27. Про стандарты - это что то вроде "ни один существующий фреймворк меня не устраивает, давай ка напишу свой". Только я пока не увидел преимуществ.
В сравнении с тем же Yii
- Как я уже выразился в 1 посте это жесткая архитектура.
Не совсем понятно что имеется в виду под "жесткой архитектурой", но в первом посте похоже имелось ввиду гибкость. Yii достаточно гибок, все легко переопределяется, расширяется. Работаю с ним больше 3х лет, писал много разных проектов и ни каких проблем с этим не возникало.
- Не большой вес но максимальный функционал(!в планах)
пока ниочем. В Yii есть большой внутренний функционал + написано множество расширений
http://www.yiiframework.com/extensions/ Те же HasMany/ManyMany bahavior которых нет в коробке, NestedSets bahavior и пр. То есть, если юзать что то вроде твоего фреймворка - придется изобретать велосипед.
Перед тем, как что то делать новое - нужно в первую очередь найти то конкурентное преимущество, которое сможет занять свою долю на рынке - иначе никому такой продукт не будет нужен, кроме тебя самого.
29.
KpuTuK 29.11.2014 / 18:09
28.
G_A_N_J_A_R, под гибкостью и жесткой архитектурой подразумевается то что для расширения\замены какого либо системного класса не нужно ползать и смотреть где какой метод использован достаточно реализовать метод и заменить его в контейнере или же не посредственно в точки вызова а она у нас одна.
ну функционал еще хромает (причем на обе ноги) но это всего лишь вопрос времени))) идей куча, наработок куча а вот для реализации его (время) пока не хватает увы(
------------
что касаемо самого yii там стиль кода и фс жуткие
30.
Zдешний 29.11.2014 / 20:29
WmLiM (28 Ноября 2014 / 22:09)
13. Муз-ТВ, ой лукавите товарищ, создай плз тему, интересно узнать чего там не хватает. На сколько мне известно он уступает другим фреймворкам тем что он уже скомпилирован, отсюда и вытекает его единственный минус - внести изменения в его код уже нельзя, что уже скоро будет пофиксено во второй ветке.
14. Zдешний, зачем знать о том что скоро выпадет из обихода?
Извиняюсь за сер в теме..
да вы остряк
31.
Александр 29.11.2014 / 21:59
Все популярные фреймворки написаны гуру php, написать лучше них не получится, но если пишешь для саморазвития, то вредно точно не будет.
32.
KpuTuK 30.11.2014 / 02:46
Муз-ТВ (29 Ноября 2014 / 21:59)
Все популярные фреймворки написаны гуру php, написать лучше них не получится, но если пишешь для саморазвития, то вредно точно не будет.
чо вы все зациклились на том что все уже существующее совершенно??
33.
Артур 30.11.2014 / 11:20
Ай да новую CMS? )
34.
KpuTuK 30.11.2014 / 20:04
Башка (30 Ноября 2014 / 11:20)
Ай да новую CMS? )
Проходили
35.
KpuTuK 03.12.2014 / 00:07
Последняя версия
https://github.com/KpuTuK/Neiron/archive/master.zip
+ Добавлены менеджеры
обьектов и
параметров класса.
~ Директория arhitecture сменена на api
~ Весь код переписан по стандарту
PSR2
~ Вызов классов системы вынесен за пределы методов
@todolist:
~ Реализовать
https://github.com/KpuTuK/Neiron/issues/1
36.
Александр 03.12.2014 / 11:48
Не знаю опечатка или нет но Neiron правильно пишется Neuron.
37.
Влад 03.12.2014 / 13:14
32.
KpuTuK, гуру они и в замбезии гуру, я думаю с этим спорить нет смысла.
В качестве саморазвития разве что писать новый фреймворк, это да, для себя , так сказать. Но в массы толкать , на мой взгляд, не стоит.
Зачем?
38.
KpuTuK 03.12.2014 / 14:26
36.
Муз-ТВ, не не опечатка)))
37.
vlad6085, а почему бы и нет??
39.
Влад 03.12.2014 / 14:30
38.
KpuTuK, доверия больше к гуру, Zend, Sensiolabs (symfony) , итп , т.к. они уже набили шишки на тех моментах, которые тебе еще предстоит узнать.
зачем кому - то брать за основу твой фреймворк?
пойми правильно, я не укоряю тебя, не за ухо беру, не пальцем грожу, а просто не понимаю твоего порыва
40.
KpuTuK 03.12.2014 / 14:33
vlad6085 (3 Декабря 2014 / 14:30)
38. KpuTuK, доверия больше к гуру, Zend, Sensiolabs (symfony) , итп , т.к. они уже набили шишки на тех моментах, которые тебе еще предстоит узнать.
зачем брать за основу твой фреймворк?
Насчет симфони кстати))) Request теперь оттуда)) но увы гитхаб прикрыт роскомнадзором и я не могу выгрузить коммиты((
А насчет доверия тут впринципе дело вкуса))) я например ЮИ 1й не доверял а 2ю глянул очень даже ничего))
41.
Константин 03.12.2014 / 14:52
KpuTuK (3 Декабря 2014 / 16:33)
Насчет симфони кстати))) Request теперь оттуда))
эх.. я то думал, что ды будешь все свое писать, эх расстроил ты меня((
42.
KpuTuK 03.12.2014 / 14:58
Jahak (3 Декабря 2014 / 14:52)
эх.. я то думал, что ды будешь все свое писать, эх расстроил ты меня((
Врятли)) гитхаб откроют увидишь))
43.
Константин 03.12.2014 / 15:02
42.
KpuTuK, ну как вряд ли. Ты ведь написал, что "Request теперь оттуда"
44.
KpuTuK 03.12.2014 / 21:27
Необольшое демо приложение ввиде микро чата
45.
KpuTuK 05.12.2014 / 02:36
Вышла
1.3.0-beta версия:
- Удалены методы globals(), get(), post(), files()
+ Добавлены свойства globals, get, post, files
+ Добавлен метод createFromGlobals()
~ Изменен метод create()
~ Исправлены мелкие ошибки
<?php
// v 1.0x - 1.2x
$app['request']->get('KpuTuK', 'Олег');
echo $app['request']->get('KpuTuK'); // Олег
var_dump($app['request']->get('byKpuTuK') === false); // true
// Удалить вообще нельзя О_о
///-------------------------------------------------------
// v 1.3x
$app['request']->query['KpuTuK'] = 'Олег';
echo $app['request']->query['KpuTuK']; // Олег
var_dump( ! isset($app['request']->query['byKpuTuK']) ); // true
unset($app['request']->query['KpuTuK']); // удаляет
46.
KpuTuK 05.12.2014 / 02:49
Буду благодарен тем кто поможет реализовать Cookie через ParameterManager
URL:
https://visavi.net/topics/41639