Я так понимаю, ты хочешь без 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 - там все понятно должно быть... А там на следующей недели постараюсь доку выложить по этому этапу и видео как пользоваться как фреймвоком
Отправная точка в Application. упрощено загружается конфиги роутов (из того файла что я выше сказал), подбирается согласно правилам нужный и запускается соответсвующий функционал
Я наоборот, критику очень даже приветствую. За критику моего проекта буду благодарен. :) (конечно же критика вменяемая, а не из серии "все Г... потому что я так сказал")
Давай ка договоримся без домыслов. Я могу ответить за любую строчку своего кода. Еще раз уточню, мне этот проект интересен именно тем, что я сам пишу. Тратить время на генерацию? Нахрен оно мне уперлось. Уверяю мне важнее, что о моей квалификации думают мои заказчики и коллеги.
Что значит открывался "public/index.php"? Там же в readme написано. Если ты настраиваешь веб сервер, то корень его должен быть в public. т.е. обращение к сайту http://joke.loc/ (или как ты там домен задал) и все. Сразу ответит index.php. Если не получается можно по простому, запустить встроенный в php веб сервер.
Ты выполнил composer install ? (или если не хочешь лишнего, то composer install --no-dev --optimize-autoloader --classmap-authoritative )
Файл ../vendor/autoload.php существует?
Согласен. Тут есть что комментировать, но хотел сделать релиз до этой пятницы. не до "красоты"
Ок. добавлю в туду.
Английский моя слабая сторона. :) читать более менее, а вот писать...... практики не хватает
composer dev запустит встроенный веб сервер php. После этого по адресу http://localhost:8000 начнет отвечать приложение, но там просто временные "тестовые ошметки". (на момент написания того сообщение там проверял автовайринг в контейнере)
Т.е. в этой репе будет расти именно фреймворк, а не приложение.
Итак, пятница
Выложил, то что наработано на github
Как и обговаривали используется:
- composer . Без него, на мой взгляд, даже в подобного плана проекте, не стоит делать приложение такого класса: если я потом надумаю все же использовать фреймворк для своих целей, нелогично отказываться от возможности использовать при необходимости выбор из огоромного числа модулей для любых задач.
И это единственная зависимость (кроме версии php конечно) для продуктового режима
В режиме разработки: phpunit - тестирование, и voral/version-increment - для автоматизации управления версии и ведения ченжлога (но это пакет разработанный мною)
На данный момент, это не релиз. Хоть все и работает, и погонять при желании можно, но не доведено до логически завершенного этапа.
Что сделано:
- маршрутизация
- сервисный контейнер
- все что реализовано - все покрыто тестами (кроме Application - но там по сути просто пустой класс пока)
Из "галок", что я поставил сам себе: никогда глубоко не вдумывался как реализуется автовайринг - здесь сделал это
В планах на следующую неделю: минимально это выпустить первый логически завершенный релиз и скелетон позволяющий создать на основе фреймворка АПИ (конечно на данном этапе простейшее, без авторизации, да и вообще без решенных вопросов секурности :), но хоть для внутреннего микросервиса. Минимальную доку. по результатам к следующей пятнице запилю видео, например с созданием апи для тривиального TODO листа.
Ну и если будет время - начну шаблонизатор.
На гитхабе в репе:
- в описании "динамический" план
- в ветке master всегда будет работоспособный вариант, и добавлю ветку dev - в которой можно будет, при желании, смотреть прогресс.
Такс. Только не стоит мои слова не совсем корректно подавать. :) Фрейморки класса laravel, simfony, yii, vue, -это серьезные проекты. У них и функционал очень большой (по сравнению с вашим, как минимум в той версии что есть у меня), а так же добавляет ответственность разработчиков перед пользователями (разработчиками использующими их фреймворк), т.е. там и для этого много чего сделано. Т.е. я говорил именно про ваш.
Уточню, это я сейчас не ради "нападок" или попыток "приунизить". А раз уж мои слова цитируете, то хотелось бы, чтоб цитата точно передавал мысль. Кстати, заодно, можете свое определение фреймворку дать: какие обязательные храктеристики, какие необязательные, но важные . Т.е. как вы определите: я сделал фреймворк или нет?
Выбор такой потому, что я считаю проекты должны быть похожими. Подстроился под тебя. Естественно под фреймворком я понимаю несколько иное. Это не cms. В фреймворке админка, шабонизатор это дополнительные модули. На слуремменных проектах не всегда нужен фронт. Даже CMS ки сейчасheadless . соответственно. То что у тебя в одном флаконе, у меня будет разделено.