Челендж на 2026

S3
На сайте с 29.03.2012
Offline
372
#61
Александр Воробьев #:
Выпустил первый релиз.

👍👍👍

Всего две недели и уже есть продукт, который можно использовать! К сожалению, у меня не грузится ваше вквидео, возможно твм бы я нашел ответы на вопросы, поэтому вопросы и замечания.

- Роутинг позволяет выстраивать запросы любого вида уже? Как с параметрами, так и без?
 

site.ru/catalog/page-1
site.ru/catalog/item?page=1&name=ball
...

- миддлваря для СОRS.  А если я хочу внедрить какой-то параметр во все роуты - это тоже можно будет через нее делать, например закрыть урл авторизацией, но не писать отдельно функцию а просто внедрить миддлварю?

Жду докер, чтобы поиграться самому)

Ну и замечание - категорически против использовать html тэги в шаблонизаторе - очень сильно загрязняет код. Давно уже стандарт использовать {{ }} для статики
и {% %} для исполняемого кода. 

Volovikov
На сайте с 06.12.2016
Offline
141
#62
Sly32 #:
Вот пример сравнения двух текстов от alex и alaev
О, не даром говорят, что мы все от Адама и Евы. Еще один братан подъехал 😁
Российский спорт ▶ https://russian-sports.ru
Александр Воробьев
На сайте с 03.02.2020
Offline
56
#63
Sly32 #:
- Роутинг позволяет выстраивать запросы любого вида уже? Как с параметрами, так и без?

Вот пример на котором я "игрался" при разработке на гитаб


/**
* @var Router $router
*/

$router->get('/', fn() => <<<HTML
<ul>
    <li><a href="/name/Alex">Hi Alex</a> Текстовый ответ. Имя можно менять</li>
</ul>
HTML
);
$router->get('/name/{name:slug}', fn(string $name) => 'Hi ' . $name, 'hiName');
$router->get('/json/{name:slug}', fn(string $name) => ['fio' => $name]);
$route = $router->get('/name-filtered/{name:slug}', fn(string $name) => 'Hi ' . $name)->addGroup('filtered');
$router->get('/invoke/{prop}', InvokeController::class);
$router->get('/shop', [SingleController::class, 'index']);
$router->get('/shop/info', SingleController::info(...));
$router->get('/shop/infoNew', SingleController::class . '::info');
$router->get('/shop/{filter}', [SingleController::class, 'find']);

$router->get(
    '/csrf',
    fn(Vasoft\Joke\Core\Request\HttpRequest $request) => [
        'csrf' => $request->session->get(
            CsrfMiddleware::CSRF_TOKEN_NAME
        )
    ]
);
$router->delete(
    '/csrf',
    fn(Vasoft\Joke\Core\Request\HttpRequest $request) => [
        'csrf' => $request->session->unset(
            CsrfMiddleware::CSRF_TOKEN_NAME
        )
    ]
);
$routeHandler = fn(Vasoft\Joke\Core\Request\HttpRequest $request) => [
    'id' => spl_object_id($request),
    'get' => $request->get->getAll(),
    'post' => $request->post->getAll(),
    'files' => $request->files->getAll(),
    'json' => $request->json,
];

$router->post('/queries', $routeHandler);
$router->put('/queries', $routeHandler);
$router->patch('/queries', $routeHandler);
$router->head('/queries', $routeHandler);
$router->get('/{*}', static fn(string $path) => new HtmlResponse()
    ->setStatus(ResponseStatus::NOT_FOUND)
    ->setBody("Запрошен несуществующий путь: {$path}"));
Sly32 #:
Жду докер, чтобы поиграться самому)

Хм. я планировал про докер с готовым приложением :) ок, разберусь и сделаю "для разработки"  

У меня у самого как то с докером не сложилось в практике: большинство проектов без докера, а брать на себя роль и сисадмина, к тому же свои коррективы вносит то, что проекты в основном на Битрикс (а там контент менеджер через интерфейс может менять файлы).... а так  у меня установлено с 14 года апач и bind9 в которые я конфиги просто скопировал с предыдущего компа... и все работает :)  Пробовал ставить себе докер - у меня начались какие то непонятки : браузеры на любом сайте постоянно стали сбрасывать соединение.  :)  в общем в этом плане я не продвинутый :)  но постараюсь разобраться. может у той же лары подгляжу - сделаю

Sly32 #:
Ну и замечание - категорически против использовать html тэги в шаблонизаторе - очень сильно загрязняет код. Давно уже стандарт использовать {{ }} для статики
и {% %} для исполняемого кода

Вообще я хотел изначально сделать %%...%% (у меня моя CMS так работала когда то). тут пошел из идеи: если тег не отработан, то он останется на странице и не будет виден. Правда пока писал этот текст осознал - у меня в этом случае бросается исключение. Подумаю.  в целом "переключить" совсем не проблема. 

Sly32 #:
у меня не грузится ваше вквидео

ужис :)  сейчас закину на ютуб

joke/tests/Fixtures/routes/web.php at master · Voral/joke
joke/tests/Fixtures/routes/web.php at master · Voral/joke
  • Voral
  • github.com
A minimal PHP microframework with manual routing and dependency injection container. - Voral/joke
Volovikov
На сайте с 06.12.2016
Offline
141
#64
Sly32 #:
В данном случае анализирует весь текст, по предложениям, но нужно еще добавть анализ по постам. Это произвольная выборка, а можно взять ответы по одной теме, там был бы еще интереснее результат.
А мои два текста не сравнивал?
Александр Воробьев
На сайте с 03.02.2020
Offline
56
#65
Sly32 #:
Жду докер, чтобы поиграться самому)
git clone https://github.com/Voral/joke-minimal my-app
cd my-app
docker compose up -d

Александр Воробьев
На сайте с 03.02.2020
Offline
56
#66
Sly32 #:
Ну и замечание - категорически против использовать html тэги в шаблонизаторе - очень сильно загрязняет код. Давно уже стандарт использовать {{ }} для статики
и {% %} для исполняемого кода.
вот, блин, ты "подбил на взлете"....  за обедом подумал, что тут даже проще реализация будет и разбор более производительный (на первый взгляд) должен получиться. так же я как раз заткнулся на реализации <j-if><j-elseif><j-else></j-if>   а тут вообще как будто этот момент упрощается
M3
На сайте с 09.02.2022
Offline
117
#67
Александр Воробьев #:
Хм. я планировал про докер с готовым приложением :) ок, разберусь и сделаю "для разработки"  
код я конечно не ревьювил, но уже видно, кто действительно работает, а кто не очень)
S3
На сайте с 29.03.2012
Offline
372
#68
master32 #:
код я конечно не ревьювил, но уже видно, кто действительно работает, а кто не очень)

А разве раньше не было видно? Александр, докер кстати отлично работает, запустился сразу и без всяких бубнов. У меня нет локально композера, хочу дописать скрипты, чтобы создавать проект прямо в запущеном контейнере и тогда поиграюсь более предметно

S3
На сайте с 29.03.2012
Offline
372
#69
ArbNet #:
Александр, когда стартуем? В какой день первый отчёт будем делать?
Уже и вторая суббота, но от тебя постов нет. Все, издох фремфорк?
ArbNet
На сайте с 27.10.2019
Offline
147
#70
Sly32 #:
Уже и вторая суббота, но от тебя постов нет. Все, издох фремфорк?

Я долго запрягаю, но быстро еду.

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

К примеру, я застрял на работе с базой данных. Сделать как обычно это делается тут не подходит. Я уже переделывал работу с бд не однократно. Сначала с простыми запросами, потом через класс с добавлением команд, параметров и тд. А начав создавать странички понимаю, что это не вариант, что эти все подходы хороши для тех кто умеет программировать, но не для тех для кого я хочу сделать свой инструмент. Поэтому мне нужно изобретать всё по другому.

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

Вот сравним по итогу то, чей вариант инструмента будет больше востребован.

ЗЫ. Нестандартные задачи требуют нестандартных решений.

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