Проект Калькулятор FIRE или когда я смогу перестать работать: сколько откладывать, когда на пенсию, какой будет капитал

Запустил проект GetBonds — интерактивный калькулятор для тех, кто мечтает о пассивном доходе и ранней пенсии!

На сайте getbonds.ru вы можете рассчитать свою индивидуальную стратегию FIRE (Financial Independence, Retire Early). Сервис помогает наглядно увидеть, как инфляция, регулярные пополнения и доходность облигаций влияют на ваш будущий капитал.

Никакой регистрации и слива данных: все расчеты проводятся локально в вашем браузере.

Кроме калькулятора, на платформе есть прикладные статьи о том, как заставить облигации приносить, например, 50 000 рублей в месяц, и возможно ли выйти на пенсию раньше срока со скромной зарплатой.

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

Я могу порекомендовать только один инжектор: Auryn. К сожалению, все известные мне альтернативы используют в своей документации и примерах антишаблон локатора сервисов (Service Locator).

В последней части вы настроили класс контроллера и сгенерировали вывод с помощью echo. Но давайте не будем забывать, что у нас есть хорошая объектно-ориентированная абстракция HTTP. И сейчас она недоступна изнутри вашего класса.

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

В настоящем руководстве мы не будем реализовывать MVC (Модель-Представление-Контроллер). Вообще-то, MVC правильно реализовать на PHP невозможно, по крайней мере, так, как это было изначально задумано. Если нужны подробности, почитайте «Руководство для начинающих по MVC» и последующие посты.

Так что забудьте о MVC и вместо этого озаботьтесь разделением ответственностей.

Роутер (Router) отправляет данные различным обработчикам в зависимости от установленных вами правил. Пока что не имеет значения, какой URL-адрес используется для доступа к приложению - результат будет один и тот же. Сейчас мы исправим это.

В данном руководстве я буду использовать FastRoute. Но, как и всегда, вы вольны выбрать свой любимый пакет.

В PHP уже есть несколько встроенных функций, упрощающих работу с HTTP. Например, существуют суперглобальные переменные, содержащие информацию из запроса.

И они подойдут в случае, когда вы просто хотите запустить небольшой скрипт, который не составит труда поддерживать. Однако если вы хотите писать чистый, удобный в сопровождении SOLID-код, вместо них вам понадобится класс с красивым объектно-ориентированным интерфейсом, который вы сможете использовать в своем приложении.

Еще раз: вам не придется изобретать велосипед, а просто нужно установить пакет. Я решил написать свой собственный HTTP-компонент, потому что существующие мне не понравились, но вам не обязательно делать то же самое.

Обработчик ошибок позволяет вам приспосабливать то, в каком виде ваш код будет возвращать ошибки.

Приятная страница ошибок с кучей отладочной информации будет с вами на протяжении всего длительного пути разработки. И первый пакет для нашего приложения об этом позаботится.

Мне нравится  filp/whoops, поэтому я покажу как вам его поставить на свой проект. Если вы предпочитаете другой, спокойно ставьте свой. В том и прелесть программинга без фреймворка - у вас есть тотальный контроль над собственным проектом.

Альтернативой мог бы послужить PHP-Error.

Давно хотел я поиграться в Shadow Complex Remastered. Планировал как-нибудь прикупить - всего 599 р., да и скидки на эту игру частенько бывают. А тут июльское обновление Game Pass порадовало ее неожиданным наличием. Наслаждаюсь!

Помимо этого подписка пополнилась:

  1. DiRT 4
  2. Oblivion - The Elder Scrolls IV
  3. Fallout 3
  4. Zombie Army Trilogy
  5. Human Fall Flat
  6. ABZU

 

Наверх