Александр Воробьев

Александр Воробьев
Рейтинг
56
Регистрация
03.02.2020
Had #:
Например, это может быть какой-то востребованный сайт-сервис. Хз - надо думать.
Может.... Но есть нюанс: это вряд ли будет "пассивный" доход :)
Sly32 #:
Например как в ларавел - можно стартануть проект одной командой. Александр - не думал свой упаковать таким образом? 
Ну пока будет просто через composer create-project.  А там посмотрим, все же для создания форума еще много чего надо успеть. Это сейчас у меня затишье по работе - там посмотрим на что времени хватит. Хотя, конечно, там под капотом наверняка просто консольная команда, но все равно время. :) 
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. упрощено загружается конфиги роутов (из того файла что я выше сказал), подбирается согласно правилам нужный и запускается соответсвующий функционал

ArbNet #:
Ещё добавлю, всякие критика, нравоучения, глупые вопросы(зачем, кому это надо, почему бы не использовать готовое и тп.) лично я буду игнорировать, это деструктивно

Я наоборот, критику очень даже приветствую.  За критику моего проекта буду благодарен. :) (конечно же критика вменяемая, а не из серии "все Г... потому что  я так сказал")

ArbNet #:
Чувствуется, что код от куда-то взят или даже сгенерирован ИИ.

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

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

Что значит открывался "public/index.php"?  Там же в readme написано.   Если ты настраиваешь веб сервер, то корень его должен быть в public.  т.е. обращение к сайту http://joke.loc/ (или как ты там домен задал) и все. Сразу ответит index.php. Если не получается можно по простому, запустить встроенный в php веб сервер.

Ты выполнил composer install ? (или если не хочешь лишнего, то composer install --no-dev --optimize-autoloader --classmap-authoritative )

Файл ../vendor/autoload.php существует?

ArbNet #:
ЗЫ. Нет комментирования функций, хотя меня поучал бывало

Согласен. Тут есть что комментировать, но хотел сделать релиз до этой пятницы. не до "красоты"

nomarketing #:
Вы не можете составить элементарое ТЗ - о чём свами тут говорить.
А сам то можешь составить ТЗ к своей задаче? показать, так сказать, мастер-класс
Sly32 #:
Не имея пхп  нп машине, не могу запустить, так что было бы здорово упаковать это все в докер-контейнер.

Ок. добавлю в туду.

Sly32 #:
Класс! Ты даже доку начал переводить! Правда начал здорово но потом запал иссяк, видимо.
No release has been published yet. -не смог перевести)) Правильнее: 

Английский моя слабая сторона. :)  читать более менее, а вот писать...... практики не хватает

Sly32 #:
Ну и это уже вопрос дилетанта - композер стартует что? После  composer dev что я получу локально? Могу открыть какой то базовый урл или что?

composer dev запустит встроенный веб сервер php. После этого по адресу http://localhost:8000 начнет отвечать приложение, но там просто временные "тестовые ошметки". (на момент написания того сообщение там проверял автовайринг в контейнере)

Т.е. в этой репе будет расти именно фреймворк, а не приложение.

Итак, пятница

Выложил, то что наработано на github

Как и обговаривали используется:

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

И это единственная зависимость (кроме версии php конечно) для продуктового режима

В режиме разработки: phpunit - тестирование,  и voral/version-increment  - для автоматизации управления версии и ведения ченжлога (но это пакет разработанный мною)


На данный момент, это не  релиз. Хоть все и работает,  и погонять при желании можно, но не доведено до логически завершенного этапа.

Что сделано:

- маршрутизация

- сервисный контейнер

- все что реализовано - все покрыто тестами (кроме Application - но там по сути просто пустой класс пока)

Из "галок", что я поставил сам себе: никогда глубоко не вдумывался как реализуется автовайринг - здесь сделал это


В планах на следующую неделю: минимально это выпустить первый логически завершенный релиз и скелетон позволяющий создать на основе фреймворка АПИ (конечно на данном этапе простейшее, без авторизации, да и вообще без решенных вопросов секурности :), но хоть для внутреннего микросервиса. Минимальную доку. по результатам к следующей пятнице запилю видео, например с созданием апи для тривиального TODO листа.

Ну и если будет время - начну шаблонизатор.

На гитхабе в репе:

- в описании  "динамический" план

- в ветке master всегда будет работоспособный вариант, и добавлю ветку dev - в которой можно будет, при желании, смотреть прогресс.

TrustManager #:
Это прваильный подход

Возможно и правильный конечно. Но требует больше времени. У меня есть в общих чертах представления о том как устроено, но для ответов на подобные вопросы точно надо смотреть тут же, и продумывать, что изменить. А так же тогда и нагрузочные тесты писать, чтоб не быть голословным.  Это несколько  "меняет" поставленую мной для меня задачу. Написать ни куда не згалядывая (в голове конечно есть что то, но все же не детальное). А специально я ни когда фреймворки не изучал глубоко, максимум проваливался по коду при необходимости, единственный опыт: написание когда то очень давно CMS ки. Но начинал я ее тогда даже не будучи Веб-разработчиком.  в общем потребует более серьезного углубления... а у меня уже полет мысли ушел в сторону AST деревьев, которые на практике я ни когда не строил, а тут хочу попробовать :)

Но вот в конце, будет интересно сравнить самому.  Зарядить базу большим объемом данных, и попробовать нагрузить jMeter`om .  

TrustManager #:
Это Портос говорил - "Я дерусь: потому что дерусь" А мы не мушкетры, мы должны преследовать какую-то цель.

Ну тут надо понимать, что нет (по крайней мере у меня) и, по крайней мере, "пока" (вдруг мой взорвет интернет 🤣 ).  Сделать продукт и развивать его потом. Хотя использовать я его запланировал для своих целей: веб морду для доки в Markdown на ней сделаю (есть у меня необходимость в таком инструменте, собственно и инструмент уже есть, но почему бы и нет :). Возможно однажды руки дойдут и до "Домашней бухгалтерии".

ArbNet #:
Александр, как и вы сторонник готовых решений, неоднократно говорил, что фреймворк это всё ерунда, курсовая работа и тп

Такс. Только не стоит мои слова не совсем корректно подавать. :) Фрейморки класса laravel, simfony, yii, vue,  -это серьезные проекты. У них и функционал очень большой (по сравнению с вашим, как минимум в той версии что есть у меня), а так же добавляет ответственность разработчиков перед пользователями (разработчиками использующими их фреймворк), т.е. там и для этого много чего сделано. Т.е. я говорил именно про ваш.

Уточню, это я сейчас не ради "нападок"  или попыток "приунизить".  А раз уж мои слова цитируете, то хотелось бы, чтоб цитата точно передавал мысль. Кстати, заодно, можете свое определение фреймворку дать: какие обязательные храктеристики, какие необязательные, но важные . Т.е. как вы определите: я сделал фреймворк или нет?

nomarketing #:
Ты сначала выложи тз, по простой казалось бы задаче, формы сообщений.
Нет, дружок, так не работает. Ты отказался от челенджа (который, по сути, сам инициировал), потом решил что программировать сложно и предложил просто ТЗ. Причем опять же сам участвовать не стал. Понимаю, что балаболить не мешки ворочать. Но поезд ушел, ты не определяешь последовательность и не ставишь задачи. 
Всего: 597