• BSA Lab.
      home

  • apps
    Главная
  • contacts
    Об авторе
  • library_books
    Блог
  • shop
    Портфолио
    keyboard_arrow_down
    • Google API
    • Gapi-People
      wc
    • Gapi-Email
      mail_outline
    • Gapi-Examples
      more

    • Silex (PHP micro-framework)
    • Silex-MVC
      desktop_windows
    • Silex-UBKI
      last_page

    • Zend (PHP framework)
    • ZF-MyBlog
      library_books
    • ZF2-ASM
      show_chart

    • Node.js
    • Express-Passport
      verified_user
    • Feathers-Examples
      more

    • Vue.js (JavaScript framework)
    • Vue-Resume
      account_circle
    • Vue-Business-Light
      work
    • Vue-Examples
      more
    • Vuex-Examples
      more

    • Nuxt (JavaScript framework)
    • Nuxt-Business-Light
      work
    • Nuxt-Vuetify-Start
      picture_in_picture

  • Темы
  • message
    WEB ресурсы
    keyboard_arrow_down
    • Обзор
      filter_none

  • message
    Google Client API
    keyboard_arrow_down
    • Обзор
      filter_none
    • Gmail-Send
      contact_mail
    • Gmail-Inbox
      mail_outline
BSA / Portfolio-silex-ubki
  • Информация

  • contact_mail
    Контакты
  • contacts
    Об авторе
  • public
    Мои проекты на GitHub
Silex UBKI
Выполнено на базе SILEX (PHP микро-фреймворка) работающее как консольное приложение.

2017-11-16

shop

Введение.

Приложение на базе SILEX (PHP микро-фреймворка, созданного на основе Symfony2 компонентов). Используется как консольное приложение для работы с сервисом UBKI «Украинское бюро кредитных историй». WEB приложение используется для тестирования консольного приложения. С документацией по SILEX можно познакомиться здесь. Примеры установки фреймворка приведены для ОС "Windows" и веб сервера Nginx.

Этот проект на GitHub можно посмотреть здесь

Подробную документацию можно посмотреть здесь

Ресурсы

Сервис UBKI «Украинское бюро кредитных историй»
Сайт
Тестовый сервер
Silex Разработка
Документация
Официальный репозитарий
Обновление
Поддержка
Сообщения Об Ошибках
Symfony
Документация
Сообщество

Работа приложения

Основное назначение данного приложения является работа с сервисом UBKI «Украинское бюро кредитных историй».

Предметом деятельности ООО «Украинское бюро кредитных историй»  является ведение кредитных историй (деятельность бюро по сбору, обработке, хранению, защите, использованию информации, которая составляет кредитную историю) и предоставление услуг, связанных с обработкой и анализом этой информации.

Кроме того, «Украинское бюро кредитных историй» осуществляет деятельность по таким направлениям:

  • предоставление услуг, связанных с обработкой и анализом информации, которая составляет кредитную историю;
  • предоставление физическим и юридическим лицам консультационных услуг, связанных с основной деятельностью Бюро;
  • сбор, обработка, использование информации, которая составляет кредитную историю;
  • предоставление кредитных отчетов;
  • хранение информации, составляющей кредитную историю;
  • предоставление кредитных отчетов в форме рассчитанного кредитного рейтинга субъекта кредитной истории и проч.

Основные характеристики приложения:

  • реализует консольное приложение для работы с сервисом UBKI;
  • расширяется с помощью конфигурационных файлов, расположенных в app/Resources/Сonfig;
  • работает как веб или как консольное приложение;
  • веб приложение используется для тестирования консольного приложения;
  • с помощью консольного приложения можно выполнять разные служебные задачи (пр. создание БД app/Console/scripts/orm/schema_create.bat);
  • реализована локализация для двух языков: английский, русский;
  • обеспечивается процесс регистрации, аутентификации и авторизации пользователей;
  • в БД созданы два пользователя с соответствующими правами. Администратор (login=admin; pass=foo) User (login=user; pass=foo);
  • использует БД типа SqlLite app/Resources/db/app.db;
  • работа с БД обеспечивается с помощью Doctrine(DBAL, ORM) vendor/doctrine и PHP ActiveRecord library/AR;
  • реализована возможность вывода данных по страницам с помощью библиотеки Pagerfanta library/Pagerfanta;
  • используется шаблонизатор Twig vendor/twig;
  • для работы с почтой используется библиотека SwiftMailer vendor/swiftmailer;
  • добавлены сервисы такие как Zend-Filter, Zend-Json и др. vendor/zendframework;
  • так же добавлены сервисы для работы с массивами, строками, XML, HTTP, Markdown app/Services/My;
  • на стороне клиента используются библиотеки : jQuery, Bootstrap 3, RequireJS, Backbone, Vue public/js/lib;
  • на стороне клиента используются сервисы: Datepicker, FormValidation, MaskInput, Highlight public/js/app/services;

Установка

Предварительные требования

  • PHP version >= 5.4
  • веб сервер Apache2, Nginx или похожие
  • Composer

Развертывание

  1. Клонировать silex-ubki проект с помощью github.
  2. Выполнить composer install.
  3. Для создания базы данных выполнить командный файл из консоли app/Console/scripts/orm/schema_create.bat, предварительно отредактировав пути к php.exe и к app\Console\index.php;
  4. Сконфигурируйте веб сервер, чтобы точка входа была public/index.php.
  5. Установите, если необходимо, соответсвующие права на запись в path/to/project/var.
  6. Введите адрес сайта в броузер

Конфигурация

parameters.yml

Здесь устанавливаются значения основных параметров вашей конфигурации, которые могут использоваться в других ваших конфигурациях. Значения параметров можно получить через $app['config']['parameters'].

config.yml

Общая конфигурация используется как веб приложением так и консольным приложением. Разместите данные о ваших общих сервисах в секции service_providers см. пр.1.

пр.1

    ...
    service_providers:
        swiftmailer:
            class: Silex\Provider\SwiftmailerServiceProvider
            parameters:
                swiftmailer.options:
                    host: %mail.host%
                    port: %mail.port%
                    username: %mail.username%
                    password: %mail.password%
                    encryption: %mail.encryption%
                    auth_mode: %mail.auth_mode%
     ...
console.yml или application.yml

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

security.yml

Здесь устанавливаются значения способа аутентификации пользователя и его авторизации. С подробностями можно познакомиться сдесь.

env.yml

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

Для решения этой задачи можно создать файл env.yml с вашими специфическими настройками и разместить его в корне вашего приложения. Этот файл будет замещать файл parameters.yml, где установлены основные параметры вашей конфигурации.

Структура приложения

Silex-UBKI проект имеет файловую структуру, показанную ниже см. пр.2.

пр.2

    |-- app/
    |  |-- Console/         # Консольное приложение
    |  |-- Controllers/     # Контроллеры
    |  |-- Forms/           # Формы
    |  |-- Models/          # Модели (AR, DBAL, ORM)
    |  |-- Providers/       # Провайдеры
    |  |-- Resources/       # Ресурсы (конфигурация, база данных, локализация)
    |  |-- Services/        # Сервисы ( дополнительные классы)
    |  |-- Views/           # Отображение данных
    |  `-- Bootstrap.php    # Класс загрузчика
    |
    |-- data/               # Данные (кеш, логи)
    |-- library/            # Библиотеки (AR, Pagerfanta)
    |-- php/                # Библиотека PHP (интерпретатор консольного приложения)
    |-- public/
    |  |-- css/             # Каскадные стили
    |  |-- fonts/           # Фонты
    |  |-- img/             # Изображения
    |  |-- js/              # Java Scripts
    |  |-- schemes/         # Схемы
    |  |-- .htaccess
    |  |-- favicon.ico
    |  `-- index.php        # Вход в приложение
    |-- vendor/             # Внешние библиотеки
    |-- LICENSE.md
    |-- README.md
    |-- README-RU.md
    |-- composer.json
    `-- composer.lock

Silex-UBKI состоит из двух независимых приложений. Это Веб приложение и Консольное приложение. Эти приложения конфигурируются по разному, хотя у них есть общие файлы конфигурации и общие библиотеки.

Структура веб приложения (app)

Приложение имеет следующую файловую структуру см. пр3.

пр.3

    |-- app/
    |-- Console/         # Консольное приложение
    |-- Controllers/     # Контроллеры
    |-- Forms/           # Формы
    |-- Models/          # Модели (AR, DBAL, ORM)
    |-- Providers/       # Провайдеры
    |-- Resources/       # Ресурсы (конфигурация, база данных, локализация)
    |-- Services/        # Сервисы ( дополнительные классы)
    |-- Views/           # Пользовательский интерфейс
    `-- Bootstrap.php    # Класс загрузчика для веб приложения

Последовательность выполнения веб приложения следующая.

Request --> index.php --> Bootstrap.php --> Controller --> Response

Структура веб приложения (public)

Публичные данные имеют следующую файловую структуру см. пр.5

пр.5

    |-- public/
    |  |-- css/             # Каскадные стили
    |  |-- fonts/           # Фонты
    |  |-- img/             # Изображения
    |  |-- js/              # Java Scripts
    |  |-- schemes/         # Схемы
    |  |-- .htaccess
    |  |-- favicon.ico
    |  `-- index.php        # Вход в приложение

Входной точкой в приложение является файл - index.php.

Основной набор Java Script библиотек, сервисов и фреймворков имеют следующую файловую структуру см. пр.6

пр.6

    |-- public/
       |-- js/                  # Java Scripts
            |-- app/
            |   |-- bb-todo/    # Компоненты реализующие тестовый пример `ToDo`
                                # на основе фреймворка `Backbone`
            |   |-- services/   # Сервисы: `Datepicker`, `FormValidation`, `MaskInput`, `Highlight`
            |   |-- app.js      # `App` класс
            |   |-- lang.js     # `Lang` класс
            |   `-- system.js   # `System` класс
            |
            |-- lib/            # Библиотеки
            `-- main.js         # Инициализация Requirejs

Для работы приложения на стороне клиента основные ресурсы загружаются с помощью макета app/Views/Layout/base.html.twig.

Сюда входят следующие ресурсы:

  • Bootstrap является самым популярным HTML, CSS, JS фреймворком для создания гибких, мобильных проектов в интернете.
  • Font Awesome дает вам масштабируемые векторные иконки, которые мгновенно могут быть настроены - по размеру, цвету и всему, что может быть сделано с помощью CSS.
  • Google fonts Фонты, с помощью которых можно отображать текст на вашем сайте.
  • jQuery - библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API для работы с AJAX.

Структура консольного приложения

Использует Symfony 2компоненты, которые облегчают создание удобного интерфейса командной строки см. пр4.

пр.4

    |-- app/
        |-- Console/        # Консольное приложение
          |-- Commands/     # Набор команд: для работы с базой данных и др.
          |-- Views/        # Текстовые данные, использующие шаблонизатор `Twig`
          |-- scripts/      # Набор командных файлов
          |-- Bootstrap.php # Класс загрузчика
          `-- index.php     # Вход в консольное приложение

Последовательность выполнения консольного приложения следующая.

script.bat --> index.php --> Bootstrap.php --> Command(s) --> Output

Для конфигурации консольного приложения используется файл конфигурации app/Resources/Config/parameters.yml, а также app/Resources/Config/console.yml, который наследует параметры конфигурации из файла app/Resources/Config/config.yml.

© 2017 Сергей Бескоровайный
language Разработчик:
BSA Lab.