https://jq.qq.com/?_wv=1027&k=5kSunAR Официальная группа CSpeed расширений в QQ: 605383362
Для быстрого старта с использованием фреймворка CSpeed следует обратиться к примерам в папке demo. Мы будем летать и побеждать в Counter-Strike! Перед использованием этого фреймворка убедитесь, что ваш компьютер уже имеет установленной версией PHP 7 или выше, а также скачайте исходный код и установите расширение CSpeed. После завершения установки активируйте расширение, чтобы использовать CSpeed.
namespace app\modules\admin;
class User extends \Cs\rpc\Server
{
public function initialise()
{
$this->handle($this);
}
/**
* Параметры передаются от клиента
*/
function listsRpc()
{
return ['kernel' => 'CSpeed', 'version' => '2. 1. 11'];
}
}
Клиентская часть может выглядеть следующим образом:
$client = new \Cs\rpc\Client('http://xxx.xxx.com/admin/user');
$data = $client->lists();
// Также можно отправить данные на сервер
$results = $client->lists(['age' => '20']);
class BootInit implements \Cs\BootInit
{
/**
* Инициализация базы данных
*/
function __initDb()
{
}
``` /**
* Инициализация других данных, таких как фабрика IOC
*/
function __initData()
{
}
}
$model = new app\models\User();
// Устанавливаем соединение с основной базой данных
$model->setDb('master');
// Выполняем какие-то действия...
// Переключаемся на соединение с резервной базой данных
$model->setDb('slave');
Перед тем как переключаться между базами данных, необходимо внедрить эти соединения в контейнер, например, основную и резервную базы данных:
$di->set('master', function(){
return new \Cs\db\pdo\Adapter();
});
$di->set('slave', function(){
return new \Cs\db\pdo\Adapter([
'dsn' => 'mysql:host=localhost;port=3306;dbname=supjos',
'username' => 'root',
'password' => 'root'
]);
});
```**Класс \Cs\db\pdo\Adapter** поддерживает инициализационные параметры **PDO**, такие как установка постоянного соединения:
```php
$di->set('slave', function(){
return new \Cs\db\pdo\Adapter([
'dsn' => 'mysql:host=localhost;port=3306;dbname=supjos',
'username' => 'root',
'password' => 'root',
'options' => [
\PDO::ATTR_PERSISTENT => true, // Постоянное соединение
\PDO::ATTR_AUTOCOMMIT => 0 // Автоматическое выполнение отключено
]
]);
});
```4. Поддержка AR-характеристик модели [в настоящее время незавершена]
5. Загрузка конфигурационных файлов [ini] по требованию: класс **\Cs\tool\Config**
```php
$config = new \Cs\tool\Config();
$config->loadConfig('xxx/xxx.ini');
$configs = $config->getConfigs();
// Или получить значение соответствующего свойства
$configValue = $config->getConfigs('db');
// Если в контроллере существует этот метод, он будет выполнен с вершины его родительского класса до завершения инициализации
// Обратите внимание, что конструктор __construct() не будет вызван: любое указание внутри него не будет применяться
// Метод initialise является методом инициализации контроллера
function initialise()
{
$this->on(self::EVENT_BEFORE_ACTION, function(){
echo 'Привет, первая функция';
});
}
Метод initialise
принимает один аргумент: $object
(имя пользователя определяется им самим, здесь предполагается, что пользователь определил его как $object
), который представляет текущий объект контроллера, например:
namespace app\modules\index\controllers;
class Goods extends \Cs\mvc\Controller {
function initialise($object)
{
// Тогда $object представляет объект текущего контроллера: Goods, вывод следующий:
echo '<pre>';
print_r($object);
echo '</pre>';
}
}
Используется наиболее распространенной моделью разработки в B/S: MVC
Пользователь может выполнять инициализацию всех классов в файле BootInit, что позволяет легко отделить модель от бизнес-логики:
Предположим, что конфигурационный файл фабрики PHP-классов пользователя выглядит так:
<?php
return [
'rsa' => [
'class' => '\app\models\User',
'properties' => [
'name' => '\app\models\Tools',
'two' => '\app\models\Tools'
],
'values' => [
'abc' => new \stdClass()
]
]
Пользователю достаточно следовать этим правилам, чтобы передать инициализацию и конструирование модели системе CSpeed, что обеспечивает более высокую производительность и эффективность по сравнению с нативным PHP:### Правила:
Каждый ключ массива соответствует уникальному идентификатору класса (Class ID):
Например, в приведённом выше примере два Class ID: rsa
и aes
.
Каждый Class ID соответствует одному классу, который будет инициализирован системой CSpeed.
rsa соответствует классу \app\models\User
.
Подмассивы указывают, как следует инициализировать этот модельный класс:
setters
).'properties' => [
'name' => '\app\models\Tools',
'two' => '\app\models\Tools'
]
Это значит, что система CSpeed должна вызвать метод setName()
класса \app\models\User
, передав ему объект \app\models\Tools
. Это эквивалентно следующему коду PHP:
$user = new \app\models\User();
$user->setName(new \app\models\Tools());
Количество элементов в массиве properties
равно количеству вызываемых методов установки (setters
).
Если пользователь не использует контейнер внедрения зависимостей (IoC) для внедрения, а хочет просто инициализировать свойства, он может использовать массив values
:
'values' => [
'abc' => new \stdClass(),
'linux' => 'Да, мне нравится Linux',
'windows' => 'Нет, если нет выбора'
],
Этот код сообщает системе CSpeed инициализировать свойство abc
класса \app\models\User
значением new \stdClass()
, а также инициализировать свойство linux
значением 'Да, мне нравится Linux'
и так далее.Чтобы не затрагивать внутренние приватные свойства, можно указать, какие модификаторы доступа могут быть инициализированы:
'attrs' => [
'private' => true,
'public' => true,
'protected' => false
]
Это сообщает CSpeed, что если свойство имеет модификатор private
, то следует использовать соответствующее значение из массива values
для его инициализации; свойства с модификатором public
также будут инициализированы, в то время как свойства с модификатором protected
— нет.
9. Поддержка командной строки и передача аргументов командной строки:
$task = new \Cs\console\Task();
// Также можно инициализировать систему с помощью параметров, формат которых аналогичен(Cs\App)
$task = new \Cs\console\Task("xxx/xxx.ini", "dev");
// Выполнение командной строки
$task->run($argv[1]);
Для запуска скрипта через командную строку Bash перейдите в директорию со скриптом и выполните следующую команду:
php -f index.php hello/world/lists
Чтобы заставить CSpeed выполнить метод lists
контроллера world
модуля hello
.
10. Усиленная функциональность маршрутизации, например:
$router = new \Cs\mvc\Router();
$router->add('/back/:action:/id:', '/shop/list/$1');
$router->add('/shop/:controller:/action:/any:', '/get/\1/\2/\3');
$router->addFromArray([
'/shop/:controller:/action:/any:' => '/get/\1/\2/\3',
'/admin/:controller:/action:/any:' => '/put/\1/\2/\3',
]);
$router->addFromIni('./app/router.ini');
Разработчики могут просто определять маршруты в точке входа, чтобы автоматически переходить к указанным маршрутам.Написано на чистом C, обеспечивает максимальную производительность, успешно протестировано на Linux и macOS
Расширение CSpeed доступно на платформах GitHub и Coding, где вы можете скачать исходный код и установить его согласно приведенной ниже инструкции:
GitHub: https://github.com/liqiongfan/cspeed
Coding: https://gitee.com/josinli/cspeed
Шаги установки:
1. /usr/local/php_to_path/bin/phpize
2. . /configure --with-php-config=/usr/local/php_to_path/bin/php-config
3. make install
После компиляции добавьте следующие строки в конфигурационный файл php.ini:
extension_dir = "/usr/local/php-7.1.8-nts/lib/php/extensions/no-debug-non-zts-2016/"
extension=cspeed.so
Затем перезапустите PHP-FPM для Nginx или Apache:
4. systemctl restart php-fpm
или systemctl restart httpd
Команда тестирования:
/usr/local/httpd-2.4.29/bin/ab -c100 -n100000 http://www.supjos.com/hello/cspeed/
Тестовая машина [была специально выбрана старым ноутбуком]: CPU: Intel(R) Core(TM) i5-2430M CPU @ 2.40GHz Жесткий диск: HDD 750GB 2009 года Оперативная память: 4 ГБ SamsungТестовое окружение: Nginx 1.12.1 PHP 7.1.5 PHP-FPM Тестовые результаты: Уровень параллелизма: 100 Время выполнения тестов: 9,781 секунды Полностью обслуженных запросов: 100000 Несоответствующих запросов: 0 Общее количество переданных данных: 18500000 байт Переданных HTML-данных: 0 байт Запросов в секунду: 10223,94 [#/сек] (в среднем) Времени на один запрос: 9,781 [мс] (в среднем) Времени на один запрос (по всем одновременным запросам): 0,098 [мс] (в среднем) Скорости передачи данных: 1847,10 [Кбайт/сек] (получено) Времени соединения (мс): мин среднее[+/−sd] медиана макс Соединение: 0 1 0,9 0 9 Обработка: 1 9 1,8 9 25 Ожидание: 1 9 1,8 9 24 Общего времени: 4 10 1,3 10 28 ВНИМАНИЕ: Медиана и среднее значение времени первичного соединения не находятся в нормальном диапазоне отклонений Эти результаты вероятно не являются надёжными. Процента запросов, обслуженных за определённое время (мс): 50% 10 66% 10 75% 10 80% 10 90% 11 95% 12 98% 13 99% 13 100% 28 (наиболее длительный запрос) После тестирования при нулевых операциях ввода-вывода достигается производительность 10223 запросов в секунду, что соответствует примерно 10000 операциям в секунду. При парсинге файла конфигурации ini производительность снижается до около 9000 запросов в секунду.## Примерная структура проекта ## +--cspeed Входной файл +--app Проектная директория +---config Конфигурационная директория |---core.ini Конфигурационный файл +---models Директория общих моделей |---User.php Модель пользователя |---Goods.php Модель товара +---modules Директория модулей +---backend Модуль управления +---controllers Контроллеры модуля управления |---Index.php Контроллер главной страницы |---About.php Контроллер информации о проекте +---views Директория представлений +---index Директория представлений контроллера главной страницы |---index.phtml Представление метода index контроллера главной страницы +---about Директория представлений контроллера информации о проекте
$app = new \Cs\App("../app/config/core.ini", "dev");
$app->bootstrap()->run();
Cs\App класс принимает абсолютный или относительный путь до INI файла в конструкторе. Второй аргумент представляет собой узел парсинга INI файла. Оба этих аргумента могут быть опущены для настройки фреймворка API с целью снижения операций ввода-вывода.Для реализации сложного веб-приложения достаточно двух строк кода.
2. Пример API
php $app = new \Cs\App(); $app->get('/hello/cspeed/:any:', function($any) { echo '<div style="text-align:center;">Привет, пользователь CSpeed! Значение any равно: ' . $any . '.<\/div>'; });
Для создания проекта на основе RESTful API достаточно добавить соответствующие методы запроса.
[core]
core.application = '../app' ; директория WEB
core.bootstrap = '../app/bootstrap.php' ; указание пути к классу Bootstrap
core.bootstrap.method.string = '__init' ; указание префикса метода инициализации класса Bootstrap
core.router.modules = index, home, back ; регистрация нескольких модулей
core.router.default.module = index ; по умолчанию используется модуль index
core.router.default.controller = index ; по умолчанию используется контроллер index
core.router.default.action = index ; по умолчанию используется метод index
core.view.
Параметр | Значение | Описание |
---|---|---|
ext |
phtml |
Префикс файла представления |
core.view.auto.render |
0 |
Автоматическое отображение представлений, 1 : автоматическое отображение, 0 : не отображать |
core.url.pattern |
.html |
Настройка псевдо-статических URL |
Параметр | Значение | Описание |
---|---|---|
db.master.dsn |
'mysql:host=localhost;port=3306;dbname=supjos' |
Тип и соединение с базой данных |
db.master.username |
root |
Имя пользователя базы данных |
db.master.password |
3333 |
Пароль доступа к базе данных |
Параметр | Значение | Описание |
---|---|---|
core.application |
'.../app' |
Каталог приложения |
core.bootstrap |
'.../app/bootstrap.php' |
Каталог бутстрапа |
core.bootstrap.method.string |
'__init' |
Префикс метода инициализации бутстрапа |
core.router.modules |
index, home |
Регистрация модулей |
core.router.default.module |
index |
Основной модуль |
core.router.default.controller |
Index |
Основной контроллер |
core.router.default.action |
index |
Основной метод |
core.view.ext |
xhtml |
Префикс файла представления |
core.view.auto.render |
0 |
Автоматическое отображение представлений, 1 : автоматическое отображение, 0 : не отображать |
core.url.pattern |
.html |
Настройка псевдо-статических URL |
Параметр | Значение | Описание |
---|---|---|
db.master.dsn |
'mysql:host=localhost;port=3306;dbname=supjos' |
Тип и соединение с базой данных |
db.master.username |
root |
Имя пользователя базы данных |
db.master.password |
3333 |
Пароль доступа к базе данных |
/** |
Пример класса инициализации BootInit */ class BootInit implements \Cs\BootInit {
/**
Инициализация маршрутов и представлений */ public function __initRouter($di, $router) { $di->set('view', function() { return new \Cs\mvc\View(); });
$router->add( '/back/:action:/id:', '/shop/list/$1' );
$router->add( '/shop/:controller:/action:/any:', '/get/\1/\2/\3' ); }
/**
**\Cs\BootInit** класс вызывает все методы, названия которых начинаются с префикса, указанного в конфигурационном файле. При этом автоматически передаются два параметра: **$di** и **$router**, представляющие контейнер внедрения зависимостей и маршрутизатор соответственно, чтобы разработчики могли выполнять настройку и инициализацию всей системы.## Пример структуры контроллера ##
```php
namespace app\modules\hello\controllers;
class Cspeed extends \Cs\mvc\Controllers
{
/**
* Метод инициализации. Если этот метод будет создан, то метод initialize начнёт выполняться от родительского класса до этого метода для выполнения инициализации.
*/
public function initialize()
{
// Код инициализации
}
/**
* Конкретный метод. Внутри фреймворка CSpeed URL методы заканчиваются на Action.
*/
public function newsAction()
{
// Код действия
}
}
namespace app\models;
class User extends \Cs\mvc\Model
{
/**
* Если существует конструктор, обязательно явно вызывайте конструктор родительского класса.
* Вы можете использовать возможность привязки событий внутри конструктора.
*/
public function __construct()
{
parent::__construct();
}
/**
* Возвращает имя таблицы.
*/
public function tableName()
{
return 'www_product';
}
}
/**
* Конструктор.
* @param string $iniConfigPath Путь к конфигурационному файлу, который следует загрузить в движок.
* @param string $iniNodeName Название узла в конфигурационном файле INI.
*/
public function __construct($iniConfigPath, $iniNodeName);
/**
* Запуск фреймворка.
*/
public function run();
/**
* Инициализация движка.
*/
public function bootstrap();
/**
* Получение объекта App.
*/
public function getApp();
/**
* Установка псевдонима для системной загрузки.
* @param string $aliasKey Псевдоним для загрузки.
* @param string $aliasFullPath Полный путь, представленный псевдонимом.
*/
public function setAlias($aliasKey, $aliasFullPath);
``````markdown
/**
* Соответствие запросу GET.
* @param string $url URL для соответствия.
* @param Closure $closure Закрытый метод для выполнения при успешном соответствии.
*/
public function get($url, $closure);
/**
* Соответствие запросу POST.
* @param string $url URL для соответствия.
* @param Closure $closure Закрытый метод для выполнения при успешном соответствии.
*/
public function post($url, $closure);
/**
* Соответствие запросу PUT.
* @param string $url URL для соответствия.
* @param Closure $closure Вызов обратного вызова после успешного соответствия.
*/
function put($url, $closure);
/**
* Обрабатывает запрос PATCH.
* @param string $url URL для соответствия.
* @param Closure $closure Вызов обратного вызова после успешного соответствия.
*/
function patch($url, $closure);
/**
* Обрабатывает запрос DELETE.
* @param string $url URL для соответствия.
* @param Closure $closure Вызов обратного вызова после успешного соответствия.
*/
function delete($url, $closure);
/**
* Обрабатывает запрос HEAD.
* @param string $url URL для соответствия.
* @param Closure $closure Вызов обратного вызова после успешного соответствия.
*/
function head($url, $closure);
/**
* Обрабатывает запрос OPTIONS.
* @param string $url URL для соответствия.
* @param Closure $closure Вызов обратного вызова после успешного соответствия.
*/
function options($url, $closure);
Презервативные интерфейсы### Cs\db\ModelInterface ### /** * SELECT * @param array|string $fields Поля выборки в запросе SELECT * @return \Cs\db\ModelInterface */ function select($fields);
/**
* FROM
* @param string $table Название таблицы данных для запроса
* @return ModelInterface
*/
function from($table);
/**
* WHERE
* @param array|string $whereCondition Условие WHERE
* @return ModelInterface
*/
function where($whereCondition);
/**
* GROUP BY
* @param array|string $groupBy Условие GROUP BY
* @return ModelInterface
*/
function groupBy($groupBy);
/**
* HAVING
* @param array|string $having Условие HAVING
* @return ModelInterface
*/
function having($having);
/**
* ORDER BY
* @param array|string $orderBy Условие ORDER BY
* @return ModelInterface
*/
function orderBy($orderBy);
/**
* LIMIT
* @param int $count Количество записей
* @param int $offset Оффсет
* @return ModelInterface
*/
function limit($count, $offset);
/**
* @param $rawSql Исходная SQL-строка
* @param array $bindParams Привязанные параметры SQL
* @return ModelInterface
*/
function query($rawSql, array $bindParams);
/**
* Выполняет SQL-запрос через метод query и возвращает результат
*/
function execute();
/**
* Конструктор PDO.
* @param array $connectionOptions Опциональные параметры соединения, такие как \PDO::ATTR_PERSISTENT.
*/
function __construct(array $connectionOptions = []);
/**
* Устанавливает поля для выборки.
* @param array|string $fields Поле или массив полей для выборки.
* @return $this|Adapter
*/
function select($fields);
/**
* Указывает таблицу для запроса.
* @param string $table Название таблицы.
* @return $this|Adapter
*/
function from($table); function from($table)
/**
* Устанавливает условие WHERE.
* @param array|string $whereCondition Условие WHERE.
* @return $this
*/
function where($whereCondition)
/**
* Устанавливает условие GROUP BY.
* @param array|string $groupBy Условие GROUP BY.
* @return $this
*/
function groupBy($groupBy)
/**
* Устанавливает условие HAVING.
* @param array|string $having Условие HAVING.
* @return $this|Adapter
*/
function having($having)
/**
* Устанавливает условие ORDER BY.
* @param array|string $orderBy Условие ORDER BY, например: orderBy(['id DESC', 't ASC']).
* @return $this|Adapter
*/
function orderBy($orderBy)
/**
* Устанавливает ограничение LIMIT.
* @param int $count Количество записей.
* @param int $offset Смещение.
* @return $this|Adapter
*/
function limit($count, $offset)
/**
* Выполняет SQL-запрос с привязанными параметрами.
* @param string $rawSql Исходный SQL-запрос.
* @param array $bindParams Привязанные параметры.
* @return $this|Adapter
*/
function query($rawSql, array $bindParams)
/**
* Возвращает результат выполнения метода query.
* @return mixed
*/
function execute()
/**
* Добавляет дополнительное условие WHERE.
* @param $whereCondition Условие WHERE.
* @return $this|Adapter
*/
function andWhere($whereCondition)
/**
* Начинает транзакцию.
*/
function begin()
/**
* Откатывает транзакцию.
*/
function rollback()
/**
* Подтверждает транзакцию.
*/
function commit()
/**
* Возвращает последний вставленный ID.
* @return mixed
*/
function lastInsertId()
/**
* Возвращает количество затронутых строк.
*/
function rowCount()
/**
* Возвращает одну строку из результата запроса.
*/ function find()
/**
* Возвращает все строки из результатов запроса.
*/
function findAll()### Cs\di\Di ###
/**
* Конструктор DI.
*/
function __construct()
/**
* @param $key Ключ ассоциативного массива контейнера внедрения зависимостей.
* @return object|mixed
*/
function get($key)
/**
* @param $key Ключ объекта, хранящегося в контейнере внедрения зависимостей
* @param $closure Коллбэк-функция, значение которой будет помещено в контейнер внедрения зависимостей
*/
function set($key, $closure)
/**
* @var $di \Cs\di\Di Объект контейнера внедрения зависимостей Di
*/
public $di;
/**
* @var $view \Cs\mvc\View Объект представления View
*/
public $view;
/**
* @var $router \Cs\mvc\Router Объект маршрутизатора Router
*/
public $router;
/**
* Метод инициализации маршрута.
* Инициализация от родительского класса до текущего.
*/
function initialise()### Cs\Mvc\Model ###
/**
* Конструктор модели Model
*/
public function __construct();
/**
* Возвращает объект модели, который требует выполнения операции UPDATE
* @return Model
*/
static function find();
/**
* Возвращает имя таблицы, связанной с моделью
*/
function tableName();
/**
* @param array|string $fields Условие SELECT
* @return $this
*/
function select($fields);
/**
* @param array|string $where Условие WHERE
* @return $this
*/
function where($where);
/**
* @param array|string $where Условие WHERE
* @return $this
*/
function andWhere($where);
/**
* @param array|string $orderBy Условие ORDER BY
* @return $this
*/
function orderBy($orderBy);
/**
* @param array|string $groupBy Условие GROUP BY
* @return $this
*/
function groupBy($groupBy);
/**
* Возвращает одну запись
*/
function one();
/**
* Возвращает все записи из результата запроса
*/
function all();
/**
* Выполняет операцию UPDATE или INSERT
* Для новых моделей выполняется INSERT, а для найденных - UPDATE
*/
function save();
/**
* Выполняет операцию DELETE
*/
function delete();
/**
* Получает объект PDO, используемый текущей моделью
* Можно использовать этот метод для вызова методов PDO
*/
function getDb();
/**
* Получает объект адаптера \Cs\Db\Pdo\Adapter, связанный с текущей моделью
*/
function getAdapter();
```### Cs\mvc\View ###
/**
* Конструктор представления View
*/
function __construct()```markdown
### Рendering шаблонов
/**
* Rendering шаблона
* @param $templateFileName имя файла шаблона для рендера без расширения
* @param $variables данные, передаваемые в шаблон
*/
function render($templateFileName, $variables)
/**
* Установка расширения шаблона, по умолчанию .phtml
* @param $suffixName новое расширение шаблона
*/
function setSuffix($suffixName)
/**
* Добавление данных в шаблон
* @param $varName имя переменной
* @param $varValue значение переменной
*/
function setVar($varName, $varValue)
/**
* Получение результата рендера
* @param $templateFileName имя файла шаблона для рендера без расширения
* @param $variables данные, передаваемые в шаблон
*/
function getRender($templateFileName, $variables)
/**
* Установка директории хранения шаблонов
* @param $viewDir путь к директории хранения шаблонов
*/
function setViewDir($viewDir)
/**
* Рендеринг частичного шаблона
* @param $templateFileName имя файла шаблона для рендера без расширения
* @param $variables данные, передаваемые в шаблон
*/
function partial($templateFileName, $variables)
### Cs\net\Request /**
* Получение значения HTTP_HOST
*/
function getHttpHost()
/**
* Получение значения HTTP_USER_AGENT
*/
function getHttpUserAgent()
/**
* Получение значения SERVER_NAME
*/
function getServerName()
/**
* Получение значения SERVER_ADDR
*/
function getServerAddr()
/**
* Получение значения REMOTE_PORT
*/
function getRemotePort()
/**
* Получение значения REMOTE_ADDR
*/
function getRemoteAddr()
/**
* Получение значения REQUEST_SCHEME
*/
function getRequestScheme()
/**
* Получение значения SERVER_PROTOCOL
*/
function getServerProtocol()
/**
* Получение значения DOCUMENT_ROOT
*/
function getDocumentRoot()
/**
* Получение значения REQUEST_URI
*/
function getRequestUri()
/**
* Получение значения SCRIPT_NAME
*/
function getScriptName()
/**
* Получение значения PATH_INFO
*/
function getPathInfo()
/**
* Получение значения QUERY_STRING
*/
function getQueryString()
/**
* Проверка является ли запрос GET
*/
function isGet()
/**
* Проверка является ли запрос PUT
*/
function isPut()
/**
* Является ли запрос PATCH
*/
function isPatch()
/**
* Является ли запрос DELETE
*/
function isDelete()
/**
* Является ли запрос HEAD
*/
function isHead()
/**
* Является ли запрос OPTIONS
*/
function isOptions()
/**
* Получение данных $_GET
*/
function get()
/**
* Получение данных $_POST
*/
function getPost()### Cs\net\Response ###
/**
* Конструктор класса Response.
*/
function __construct()
/**
* Установка HTTP-заголовков.
* Например: setHeader('Content-Type', 'application/json;charset=UTF-8');
* @param $headerKey Название HTTP-заголовка
* @param $headerValue Значение HTTP-заголовка
*/
function setHeader($headerKey, $headerValue)
/**
* Удаление HTTP-заголовков.
* @param $headerKey Название HTTP-заголовка для удаления, функция должна вызываться до send()
*/
function unsetHeader($headerKey)
/**
* Отправка HTTP-заголовков и содержимого ответа.
*/
function send()
/**
* Установка JSON-контента в ответе.
* @param array $jsonArray
*/
function setJsonContent(array $jsonArray)
/**
* Установка сырого контента.
* @param $rawContent Сырой контент
*/
function setRawContent($rawContent)
/**
* Перенаправление на указанный URL.
* Например: redirect('/index/lists') перенаправляет на: http://host/index/lists
* @param $url URL для перенаправления
*/
function redirect($url)
### Cs\tool\Config ###
/**
* Конструктор класса Config.
*/
function __construct()
/**
* Загрузка данных из INI файла.
* @param string $configFilePath Относительный путь к INI файлу
*/
function loadConfig($configFilePath)
/**
* Возврат данных из INI файла, с учетом разделителей.
*/
function getConfigs()
/**
* Возврат данных из INI файла, соответствующих указанному ключу.
*/
function getConfig($configKey)### Cs\mvc\Router ###
/**
* Конструктор класса Router.
*/
function __construct()
/**
* Добавление маршрута в Router.
* @param $destUrl Поддерживает регулярные выражения для URL маршрутов
* @param $toUrl URL маршрута после соответствия
*/
function add($destUrl, $toUrl)
/**
* Добавление маршрутов из INI конфигурационного файла
* @param $iniFile INI конфигурационный файл, содержащий маршруты
*/
function addFromIni($iniFile)
/**
* Добавление маршрутов из массива
* @param $arrayRouters Массив маршрутов, где ключи — это маршрутизируемые URL, а значения — URL для переадресации при успешной совпадении
*/
function addFromArray($arrayRouters)
{
}
### Cs\tool\Component ###
/**
* Конструктор
*/
/**
* Привязка события
* @param $eventName Название события для привязки
* @param $callBack Функция, которая будет вызвана при возникновении события
*/
function on($eventName, $callBack);
/**
* Отвязка события
* @param $eventName Название события для отвязки
* @param $callBack Обработчик события, NULL отвязывает все события с одинаковым названием
*/
function off($eventName, $callBack = NULL);
/**
* Вызов события
* @param $eventName Название события для вызова
*/
function trigger($eventName);
### Cs\ObjectFactory ###
/**
* Инициализация IOC объектного фабричного класса по конфигурационному файлу
* @param $factoryConfig Конфигурационный файл для управления IOC
*/
function init($factoryConfig);
/**
* Получение объекта из IOC фабрики
* @param $id Уникальный идентификатор объекта для получения
*/
function getObject($id);
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )