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

Александр Воробьев
Рейтинг
56
Регистрация
03.02.2020
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 - в которой можно будет, при желании, смотреть прогресс.

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

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

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

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

Выбор такой потому, что я считаю  проекты должны быть похожими. Подстроился под тебя. Естественно под фреймворком я понимаю несколько иное. Это не cms. В фреймворке админка, шабонизатор это дополнительные модули. На слуремменных проектах не всегда нужен фронт. Даже CMS ки сейчасheadless  . соответственно. То что у тебя в одном флаконе, у меня будет разделено.

ArbNet #:
Лучше не в питницу, лучше в субботу. И потом через каждые 2 недели. Торопится не будем, время есть.
Я буду в пятницу отчитываться, можешь в субботу. 
Всего: 627