kladrapi

Кладр в облаке

  • Owner: garakh/kladrapi
  • Platform:
  • License:: Other
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Проект переведен в прориетарный статус. Дальнейшее его развитие будет осуществляться компанией-разработчиком, исходные коды не будут выкладываться на github

КЛАДР в облаке

Исходный код сервиса ["КЛАДР в облаке"] 1

Технологии

  • [Phalcon] 3
  • [MongoDB] 4

Общая структура

  • /apps/core - Модуль сервиса [kladr-api.ru/api.php] 2
  • /apps/frontend - Модуль сайта [kladr-api.ru] 1
  • /docs – PHPDoc документация сервиса
  • /examples – Примеры
  • /files – Файлы КЛАДР для загрузки в БД (урезанные варианты)
  • /loader – Загрузчик файлов КЛАДР в БД
  • /tests - Функциональные тесты
  • /public

Структура сервиса

  • /apps/core/config/ - Файлы конфигурации сервиса
  • /apps/core/controllers/ - Контроллеры
  • /apps/core/models/ - Модели ODM
  • /apps/core/plugins/base/ - Базовые классы плагинов
  • /apps/core/plugins/general/ - Плагины
  • /apps/core/plugins/tools/ - Вспомогательные классы
  • /apps/core/services/ - Сервисы

Архитектура

Архитектура сервиса построена на плагинах.
Для того чтобы расширить функциональность надо всего лишь реализовать
плагин и подключить его в модуле сервиса.

Пример:
Добавим плагин возвращающий количество объектов в результате.

Добавим плагин CountPlugin.php в /apps/core/plugins/general/

<?php

namespace Kladr\Core\Plugins\General {

    use \Phalcon\Http\Request,
        \Phalcon\Mvc\User\Plugin,
        \Kladr\Core\Plugins\Base\IPlugin,
        \Kladr\Core\Plugins\Base\PluginResult;

    class CountPlugin extends Plugin implements IPlugin
    {
        public function process(Request $request, PluginResult $prevResult) 
        {
            $result = $prevResult;
            $result->result = count($result->result);    
            return $result;
        }        
    }
}

Подключим плагин в /apps/core/Module.php

// Register CountPlugin
$di->set('count', function(){
    return new \Kladr\Core\Plugins\General\CountPlugin();
});

// Setting api
$di->setShared('api', function() use ($di) {
    $api = new Services\ApiService();
    $api->addPlugin($di->get('validate'));
    $api->addPlugin($di->get('find'));   
    $api->addPlugin($di->get('findParents'));
    $api->addPlugin($di->get('count')); // add CountPlugin
    return $api;
});

Лицензия

Copyright (c) 2013 «Праймпикс»

Данная лицензия разрешает лицам, получившим копию данного программного
обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное
Обеспечение»), безвозмездно использовать Программное Обеспечение без ограничений,
включая неограниченное право на использование, копирование, изменение, добавление,
публикацию, распространение, сублицензирование и/или продажу копий Программного
Обеспечения, также как и лицам, которым предоставляется данное Программное
Обеспечение, при соблюдении следующих условий:

  • Указанное выше уведомление об авторском праве и данные условия должны быть
    включены во все копии или значимые части данного Программного Обеспечения.
  • Запрещается использование или встраивание Программного Обеспечения или любой его части
    в коммерческие тиражируемые решения.

ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО
ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ
ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И
ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ
ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ ИЛИ ДРУГИХ ТРЕБОВАНИЙ ПО
ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ДЕЛИКТАМ ИЛИ ИНОМУ, ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ ПРИЧИНОЙ ИЛИ
СВЯЗАННЫМ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.

Main metrics

Overview
Name With Ownergarakh/kladrapi
Primary LanguagePHP
Program languagePHP (Language Count: 6)
Platform
License:Other
所有者活动
Created At2013-08-20 22:39:59
Pushed At2019-06-16 15:52:16
Last Commit At2019-06-16 18:52:15
Release Count6
Last Release Name1.2.3 (Posted on )
First Release Name1.0.0 (Posted on )
用户参与
Stargazers Count186
Watchers Count18
Fork Count47
Commits Count282
Has Issues Enabled
Issues Count28
Issue Open Count13
Pull Requests Count7
Pull Requests Open Count0
Pull Requests Close Count7
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private