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

Александр Воробьев
Рейтинг
59
Регистрация
03.02.2020

100%го рецепта нет.  Для примера ОЧЕНЬ частая причина для альцгеймера - некачественное спиртное. Т.е. вполне себе так есть шанс выпить - и все. И тут речь не конкретной паленке покупаемой с рук в подворотне.....  

А далее все как всегда: спорт, питание, упражнения для мозга.

Devstory #:
Говоришь бюджет и порекомендуй что по лучше за него, вот и все
Ой да ладно. Я как то даже не выдержал в эльдорадо: около меня консультант отвечал покупателю на вопросы про ноут, такую ересь говорил (про вайфай). так то было во времена когда  явно консультантов мотивировали на продажи. (сейчас зайдешь так там просто ходят цари которым все по.....)
Had #:
Но почти уверен не зайдёт это. Спроса не будет. Почему?
Как минимум должен быть уровень вашей экспертизы доказан.  Т.е. для создания своего имени придется очень сильно поработать. Да и потом 500 руб это 500 руб. Кто то (и достаточно много) боится рискнуть и меньшей суммой
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 - в которой можно будет, при желании, смотреть прогресс.

Всего: 692