1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/AntTang-SlimCustom

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

SlimCustom 2.0 Framework

SlimCustom — это облегчённый RESTFul-фреймворк, который поможет вам быстро создать простое, но функциональное веб-приложение или API.

Особенности: HTTP-маршрутизация, использование middleware, поддержка PSR-7, внедрение зависимостей, фасадная архитектура, автоматическая проверка моделей, предварительная обработка полей, управление многопоточными задачами и др.

Технический чат: 637251928.

Начало использования

Обратите внимание: переменная {$переменная} должна быть заменена на фактическое значение. Не рекомендуется слепо копировать.

Установка и удаление

$SlimCustomFrameworkPath/bin/cmd $application app:make      установка
$SlimCustomFrameworkPath/bin/cmd $application app:remove    удаление

Веб-сервер

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

Это пример конфигурации для виртуального хоста Nginx, ориентированного на домен example.com. Он прослушивает входящие HTTP-соединения на порту 80. Предполагается, что PHP-FPM сервер работает на порту 9000. Необходимо изменить значения server_name, error_log, access_log и root в соответствии с вашими настройками. Значение root указывает на путь к корневому каталогу вашего приложения; файл index.php переднего контроллера вашего Slim-приложения должен находиться в этом каталоге.

server {
    listen 80;
    server_name example.com;
    index index.php;
    error_log /path/to/example.error.log;
    access_log /path/to/example.access.log;
    root /path/to/public;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SSCRIPT_NAME $fastcgi_script_name;
        fastcgi_index index.php;
        fastcgi_pass 127.0.0.1:9000;
    }
}

Документация Slim

http://www.slimphp.net/docs/start/web-servers.html

Структура каталогов

Фреймворк

/bin/cmd                                        команда входа (linux)
/bin/cmd.bat                                    команда входа (windows)
/bootstrap/autoload.php                         Автозагрузка
/bootstrap/dependencies.php                     Зависимости фреймворка
/config/application.php                         Временно не используется
/config/configs.php                             Конфигурационный файл по умолчанию
/config/errors.php                              Конфигурационные ошибки
/config/validation.php                          Автоматическая проверка конфигурации
/demo/                                          Демонстрационное приложение
/docs/Api/                                      Документация API, созданная на основе phpDoc2
/Libs/Cache/Cache.php                           Файловый кэш
/Libs/Console/Console.php                       Интерфейс командной строки
/Libs/Console/Daemon.php                        Управление задачами (поддержка управления процессами)
/Libs/Container/Container.php                   Фабрики контейнеров
/Libs/Contracts/                                Соглашения
/Libs/Controller/Api.php                        Контроллер API
/Libs/Controller/Controller.php                 Контроллер абстрактного класса
/Libs/Curl/Curl.php                             CURL
/Libs/Filesystem/Filesystem.php                 Файловая система
/Libs/Exception/SlimCustomException.php         Исключения
/Libs/Handlers/Error.php                        Обработка ошибок
/Libs/Handlers/PhpError.php                     Обработка ошибок PHP
/Libs/Helpers/Facades.php                       Фасадные помощники
/Libs/Helpers/Helpers.php                       Вспомогательные функции
/Libs/Http/Response.php                         Ответ HTTP
/Libs/Model/Query/PdoQuery.php                  PDO-запросы
/Libs/Model/Query/MongodbQuery.php              MongoDB-запросы
/Libs/Model/Model.php                           Модель данных
/Libs/Pageinator/Pageinator.php                 Разбиение на страницы
/Libs/Session/Session.php                       Сессия
/Libs/Support/Arr.php                           Работа с массивами
/Libs/Support/Collection.php                    Коллекции
/Libs/Support/MessageBag.php                    Пакеты сообщений
/Libs/Support/Str.php                           Работа со строками
/Libs/Traits/Macroable.php                      
/Libs/Traits/Single.php                         Одиночный экземпляр
/Libs/Valication/Validator.php                  Проверка
/Libs/App.php                                   Ядро приложения
/vendor/                                        Каталог поставщика
/index.php                                      Точка входа
/README.MD                                      Документация

Демонстрационное приложение

/bootstrap/routes.php                           Файл маршрутизации
/configs/configs.php                            Конфигурационный файл
/Console/Console.php                            Интерфейс командной строки приложения
/Console/Commands/Hello.php                     Команда hello
/Controller/                                    Контроллеры
/Controller/Admin                               Группа контроллеров Admin
/Controller/Admin/Index.php                     Контроллер Index группы Admin
/data/logs/                                     Каталог журналов
/data/cache/                                    Каталог кэша **Конфигурация**

######Универсальная конфигурация

// set to false in production 'displayErrorDetails' => true,

// Allow the web server to send the content-length header 'addContentLengthHeader' => false,

// Renderer settings 'renderer' => [ 'template_path' => App::publicPath() . '/views/' ],

// Monolog settings 'logger' => [ 'name' => App::name(), 'path' => App::dataPath() . '/logs/' . App::name() . '_' . date('Ymd') . '.log', 'level' => \Monolog\Logger::DEBUG ],

// session 'session' => [ 'driver' => 'cache', 'lifetime' => 120, 'expire_on_close' => false, 'encrypt' => false, 'files' => App::dataPath() . '/sessions/', 'connection' => null, 'table' => 'sessions', 'lottery' => [ 2, 100 ], 'cookie' => App::name() . '_session', 'path' => '/', 'domain' => 'hoge.cn', 'secure' => false ],

// cache 'cache' => [ 'default' => 'file', 'prefix' => App::name(), 'stores' => [ 'file' => [ 'driver' => 'file', 'path' => App::dataPath() . 'cache' ], 'redis' => [ 'driver' => 'redis', 'cluster' => false, 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 6379, 'database' => 0, 'password' => '' ] ] ] ] ],

// database 'database' => [ 'orm' => 'PDO', 'default' => 'mysql', 'prefix' => 'mxu_', 'connections' => [ 'mysql' => [ 'driver' => 'mysql', 'host' => '127.0.0.1', 'database' => 'mxu_message_collect', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'strict' => false ] ] ]


######Файл маршрутов

namespace Demo\bootstrap;

use \SlimCustom\Libs\App;

// Routes Example App::get('/[{name}]', function ($request, $response, $args) { //Demo log message $this->logger->info("Demo-Skeleton '/' route"); //Render index view return $this->renderer->render($response, 'index.phtml', $args); });

App::get('/hello/{name}', function ($request, $response, $args) { return 'hello world'; });

App::group('/admin', function () { $this->get('/index/{name}', \Demo\controllers\Admin\Index::class . ':index'); $this->post('/post', \Demo\controllers\Admin\Index::class . ':index'); //$this->get('/index/{name}', \Demo\controllers\Admin\Index::class . ':index')->add(\Demo\middlewares\Admin\Index::class . ':index'); });


######Многозадачная конфигурация

$daemon = Daemon();

$daemon->group('Demo', function () { // 注册任务‘task1’,每隔10秒运行 $this->call(10, 'task1', function () { while (true) { logger()->info(getmypid()); sleep(1); } //sleep(10); exit; }); // 注册任务‘task2’,每隔5秒运行 $this->call(5, 'task2', function () { while (true) { logger()->info(getmypid()); sleep(1); } //sleep(5); exit; }); });

// 启动任务调度守护进程 $daemon->run();


## Контроллер, модель, кэш и другие вызовы

В этом разделе нет текста для перевода. **Задача управления**

**Структура отношений процессов**

master (задача диспетчеризации) -> forker (задача 1) -> forker (задача 2)


**Справка**

JingTongdeMac-mini:www jingtong$ php Demo/scripts/Demo.php help Команда Описание Использование kill закрыть задачу kill задача killall закрыть все задачи start запустить задачу start задача startall запустить все задачи list список задач help справка JingTonddeMac-mini:www jingtong$


**Список задач**

JingTongdeMac-mini:www jingtong$ php Demo/scripts/Demo.php list task process lastRunTime stop task1 36639 2017-07-05 05:59:03 0 task2 36640 2017-07-05 05:59:03 0


**Запуск всех задач**

JingTongdeMac-mini:www jingtong$ php Demo/scripts/Demo.php startall task result task1 1 task2 1 JingTongdeMac-mini:www jingtong$ ps aux | grep php jingtong 13878 0.0 0.1 2566948 4644 ?? Ss 3:59下午 0:00.01 php Demo/scripts/Demo.php startall jingtong 13877 0.0 0.1 2566948 4636 ?? Ss 3:59下午 0:00.01 php Demo/scripts/Demo.php startall jingtong 13876 0.0 0.0 2566948 2488 ?? Ss 3:59下午 0:00.01 php Demo/scripts/Demo.php startall


**Завершение всех задач**

JingTongdeMac-mini:www jingtong$ php Demo/scripts/Demo.php killall task result task1 1 task2 1 JingTongdeMac-mini:www jingtong$ ps aux | grep php jingtong 13876 0.0 0.0 2566948 2552 ?? Ss 3:59下午 0:00.09 php Demo/scripts/Demo.php startall


**Закрытие одной задачи**

JingTongdeMac-mini:www jingtong$ php Demo/scripts/Demo.php kill task1


**Запуск одной задачи**

JingTongdeMac-mini:www jingtong$ php Demo/scripts/Demo.php start task1


Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/AntTang-SlimCustom.git
git@api.gitlife.ru:oschina-mirror/AntTang-SlimCustom.git
oschina-mirror
AntTang-SlimCustom
AntTang-SlimCustom
master