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
я бы мог посодействовать, но лень подстраиваться под тебя

Добавлено через 01:41 сек.
Acrhitecture переименуй в Api, наглядней будет

3. KpuTuK (28.11.2014 / 10:26)
Виталик Альянс (28 Ноября 2014 / 10:11)
не мешало бы следовать стандартам PSR
я бы мог посодействовать, но лень подстраиваться под тебя

Добавлено через 01:41 сек.
Acrhitecture переименуй в Api, наглядней будет
а что же у меня там не по psr?
там нет с
а вот насчет api надо подумать)))

4. Виталий (28.11.2014 / 11:05)
3. KpuTuK,

а что же у меня там не по psr?

прочти, поймешь smile

там нет с

правильно пишется architecture, а не arhitecture

5. KpuTuK (28.11.2014 / 11:24)
Виталик Альянс (28 Ноября 2014 / 11:05)


прочти, поймешь smile


правильно пишется architecture, а не arhitecture
У меня там все по psr))
сам сразу написать не смог куда уж там мне E

Добавлено через 01:08 сек.
----------------------------------
1й beta релиз https://github.com/KpuTuK/Neiron/releases/tag/28.11.14-beta

6. Виталий (28.11.2014 / 11:30)
5. KpuTuK, ты даже не соизволил прочесть, а там ведь все на русском facepalm опечатка была, раз не понял

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

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 не знал?

Добавлено через 00:28 сек.
Нравится человеку - пусть пишет

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 smile

18. KpuTuK (29.11.2014 / 00:00)
Jahak (28 Ноября 2014 / 19:30)
Чувак забей, зачем тебе такая головная боль?
Займись лучше фрилансом))
А для всего остального есть laravel, yii, symfony, zend framework, fuelphp, codeigniter, kohana framework, etc.
когдато и их вот так делали. а фрилансом то я и не занимаюсь практически ибо хобби. да и терпенения не хватит E

Добавлено через 01:56 сек.
WmLiM (28 Ноября 2014 / 19:47)
11. Jahak, про phalcon не знал? Побыстрее будет всего что ты перечислил выше.
а еще yaf есть тоже на C#

Добавлено через 02:37 сек.
Народ, вы глаза то поднимите вверх. Что в названии темы написанно???

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, я правильно понимаю, что тебе не один из выше перочинных фреймворков не нравится и ты начал писать свой?

Допустим мне вот не нравится ни один фреймворк в том числе и твой, ты мне предлагаешь написать свой что-ли?

Я уж лучше приспособлюсь к например кохана и буду писать на нем, чем я буду сидеть и писать свой фреймворк это же такой геморрой((, а если чего-то и не хватает в кохана я лучше его дополню))
это я просто пример привел)))

Добавлено через 06:38 сек.
Один "многофункциональный" метод или несколько? кто что выбирает?

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';
D

24. KpuTuK (29.11.2014 / 15:57)
23. VITAMIN, всем)))

25. VITAMIN (29.11.2014 / 16:00)
KpuTuK (29 Ноября 2014 / 15:57)
23. VITAMIN, всем)))

Чем всем?D

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, написать лучше них не получится, но если пишешь для саморазвития, то вредно точно не будет.
чо вы все зациклились на том что все уже существующее совершенно?? E

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. Муз-ТВ, не не опечатка)))

Добавлено через 00:49 сек.
37. vlad6085, а почему бы и нет??

39. Влад (03.12.2014 / 14:30)
38. KpuTuK, доверия больше к гуру, Zend, Sensiolabs (symfony) , итп , т.к. они уже набили шишки на тех моментах, которые тебе еще предстоит узнать.
зачем кому - то брать за основу твой фреймворк?
пойми правильно, я не укоряю тебя, не за ухо беру, не пальцем грожу, а просто не понимаю твоего порыва smile

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