Челендж на 2026

Александр Воробьев
На сайте с 03.02.2020
Offline
56
#51
ArbNet #:
Запустить не удалось

Я так понимаю, ты хочешь без composer (это зря - усложняешь только вопросы обновления, если в простом варианте хочешь проект тестить). По этому вот размести этот код в файле vendor/autoload.php

<?php 

spl_autoload_register(function ($class) {
    $prefix = 'Vasoft\\Joke\\';
    $baseDir = __DIR__ . '/../src/';

    $len = strlen($prefix);
    if (!str_starts_with($class, $prefix)) {
        return;
    }
    $relativeClass = substr($class, $len);
    $file = $baseDir . str_replace('\\', DIRECTORY_SEPARATOR, $relativeClass) . '.php';

    if (file_exists($file)) {
        require $file;
    }
});

Далее необязательно настраивать опенсервер: можно просто в корне проекта  php -S localhost:8000 -t public/
  И далее  два роута сейчас работают  (я версию на github обновил) :  http://localhost:8000  (ну или у тебя судя по всему http://joke.loc )  и http://joke.loc/name/alex (http://localhost:8000/name/alex)  имя можно подставлять любое.  Роуты можно понастраивать  в tests/Fixtures/routes/web.php  - там все понятно должно быть...  А там на следующей недели постараюсь доку выложить по этому этапу и видео как пользоваться как фреймвоком


ArbNet #:
Не понятно как работает маршрутизация из src\Core\Routing\ чтобы открывался

Отправная точка в Application. упрощено загружается конфиги роутов (из того файла что я выше сказал), подбирается согласно правилам нужный и запускается соответсвующий функционал

S3
На сайте с 29.03.2012
Offline
370
#52
Александр Воробьев #:
Я так понимаю, ты хочешь без composer
Это не то что зря - это вообще какая-то глупость, в наше время не имеющая смысла. Лично я взялся бы тестить  любой фреймворк только при условии его простой установки. Например как в ларавел - можно стартануть проект одной командой. Александр - не думал свой упаковать таким образом? 
Александр Воробьев
На сайте с 03.02.2020
Offline
56
#53
Sly32 #:
Например как в ларавел - можно стартануть проект одной командой. Александр - не думал свой упаковать таким образом? 
Ну пока будет просто через composer create-project.  А там посмотрим, все же для создания форума еще много чего надо успеть. Это сейчас у меня затишье по работе - там посмотрим на что времени хватит. Хотя, конечно, там под капотом наверняка просто консольная команда, но все равно время. :) 
S3
На сайте с 29.03.2012
Offline
370
#54
Александр Воробьев #:
Ну пока будет просто через composer create-project.
Этого вполне достаточно)
S3
На сайте с 29.03.2012
Offline
370
#55
Картинка напомнила мне один фремфорк:

S3
На сайте с 29.03.2012
Offline
370
#56

Я, так сказать вне конкурса - куда мне до лавров фремфорко-строителя, не претендую на лавры гения, но по мотивам недавних рахборок мне пришла в голову идея двух маленьких сервисов, которые и набросал за выходные.

1. Определение схожести текстов.  Это не антиплагиат, а подсчет вероятности, что два текста были написаны одним автором. Можно например, выявлять дупликаты аккаунтов. Вычисляет сходство двух текстов по многим параметрам и позволяет понять схожесть. Вот пример сравнения двух текстов от alex и alaev

А вот сравнение текстов Volovikov vs Alex

Не правда ли - интересный результат? В данном случае анализирует весь текст, по предложениям, но нужно еще добавть анализ по постам. Это произвольная выборка, а можно взять ответы по одной теме, там был бы еще интереснее результат.

Второй сервис - анализ схожести фото. Тот же принцип - загружаем 2 фото и получаем результат. Тут интереснее постанализ, а не цифры. Вот сравнение аватаров

Volovikov и Alex:


Казалось бы - ответ отрицательный, но обратите внимание, сколько много общих точек в итоге подсвечивается?

Как это можно применить - не придумал))) 

M3
На сайте с 09.02.2022
Offline
113
#57
Sly32 #:

Я, так сказать вне конкурса - куда мне до лавров фремфорко-строителя, не претендую на лавры гения, но по мотивам недавних рахборок мне пришла в голову идея двух маленьких сервисов, которые и набросал за выходные.

Как это можно применить - не придумал))) 

а где исходники?)
S3
На сайте с 29.03.2012
Offline
370
#58
master32 #:
а где исходники?)

Пока что только локально и сделано в рамках довольно большого проекта сервисов, нет смысла светить отдельно, как  удасться запустить целиком - покажу. Впрочем, когда закину в гихаб - могу дать доступ в репо желающим

Александр Воробьев
На сайте с 03.02.2020
Offline
56
#59
Sly32 #:

Как это можно применить - не придумал))) 

Прикольно, интересно было бы узнать нет ли "родственных" душ в рамках форума :) 


PS. А у меня тем временем сегодня первый релиз (и фреймворка и скелетона для простого старта разработки на нем). постараюсь к пятнице видео запилить.  Начинается у меня череда ДР: отец, сын и я - друг за другом, "скорость" подспадет

Александр Воробьев
На сайте с 03.02.2020
Offline
56
#60

Итак вторая пятница (далее через две недели "отчеты")

Фреймворк

Выпустил первый релиз. Базовый функционал (естественно он очень минимальный) работоспособен. Вполне можно собрать какой то внутренний микросервис. Реализовано:

  • Ручная маршрутизация HTTP-запросов
  • DI-контейнер с поддержкой автовайринга параметров
  • Система middleware
  • Управление сессиями (включая поддержку «неблокирующего» режима — данные сессии считываются в начале обработки запроса, после чего сессия немедленно закрывается, позволяя другим запросам от того же пользователя работать параллельно без ожидания завершения текущего.)
  • Обработка ошибок и исключений

Так же начата разработка следующей версии: функционал, в основном, определяется разрабатываемым параллельно шаблонизатором. Тут сейчас на очереди задача регистрации модулей, т.е. чтобы не приходилось при подключении в проект шаблонизатора регистрировать все его сервисы и потребности, а сделать некие провайдеры упрощающие процесс

GitHub   Дока

Так же сделал скелетон, для старта с минимальным набором (в README описано)

composer create-project voral/joke-minimal my-app

Видео

Видео записал не в формате "показать что у меня внутри" тут, если у кого то будут вопросы, готов ответить, а выдавливать из себя... хз... (я вообще наверно первый раз лет за 30 столько говорил без перерыва :) )

Записал видео с демонстрацией создания с помощью фреймворка простейшего приложения Списка задач. видео  созданное приложение на github

Шаблонизатор

Основная разработка сейчас здесь. Реализованы сейчас базовые теги <j-echo>, <j-if></j-if>, <j-each/> на их базе отработал построение AST дерева, рендер в HTML. Но осознал, что выполнять сразу полный рендер  HTML это не правильно для динамических сайтов: по этому  будут следующие шаги:  лексер - парсер - рендер тегов отмеченных атрибутом static (сейчас на гитхабе версия с "j-static", но у атрибута префикс планирую убрать) - компиляция в PHP код. Т.е. на первом хите будет и построение AST дерева и компиляция php кода. На последующих (пока не сработают правила обновления кода) будет только выполнение PHP (естественно я пока опускаю, что будут и другие уровни кеширования).

Сейчас работаю над внедрением в шаблонизатор DI контейнера, что позволит и регистрировать свои теги и заменять те, что идут из коробки. В общем то можно будет заменить не только обработчики тега, но и например компилятор штатный заменить на компилятор который будет компилировать в любой другой ЯП, например в код на питоне :)

Репа шаблонизатора GitHub

GitHub - Voral/joke: A minimal PHP microframework with manual routing and dependency injection container.
GitHub - Voral/joke: A minimal PHP microframework with manual routing and dependency injection container.
  • Voral
  • github.com
Joke — это учебный микрофреймворк с ручной маршрутизацией и встроенным DI-контейнером. Он разрабатывается в рамках образовательного челленджа и не претендует на конкуренцию с промышленными решениями, такими как Laravel или Symfony. Несмотря на скромный функционал, реализуемые компоненты стремятся быть надёжными, тестируемыми и пригодными для...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий