Wei is a micro-framework provided powerful but simple APIs for faster and easier PHP development.
Start using Wei in 3 steps, it's easier than any frameworks you've seen before!
// 1. Include the wei container class
require 'path/to/wei/lib/Wei.php';
// 2. Create the default wei container instance
$wei = wei([
// Options for wei container
'wei' => [
'debug' => true,
// Other options ...
],
// Options for database
'db' => [
'driver' => 'mysql',
'host' => 'localhost',
'dbname' => 'wei',
'charset' => 'utf8',
'user' => 'root',
'password' => 'xxxxxx',
],
// More options ...
]);
// 3. Using "db" object to execute SQL query
$result = $wei->db->fetch("SELECT 1 + 2");
Run the following command to install
composer require wei/wei
- Documentation (Chinese, GitHub online markdown)
- Documentation (Chinese, single HTML file)
- API Documentation (English)
- Demo (English, GitHub online markdown)
// Available cache objects
$wei->cache;
$wei->apcu;
$wei->arrayCache;
$wei->dbCache;
$wei->fileCache;
$wei->memcache;
$wei->memcached;
$wei->mongoCache;
$wei->redis;
$wei->nullCache;
$cache = $wei->memcached;
// Cache APIs
$cache->get('key');
$cache->set('key', 'value', 60);
$cache->delete('key');
$cache->has('key');
$cache->add('key', 'value');
$cache->replace('key', 'value');
$cache->incr('key', 1);
$cache->decr('key', 1);
$cache->getMultiple(array('key', 'key2'));
$cache->setMultiple(array('key' => 'value', 'key2' => 'value2'));
$cache->clear();
// ...
$db = $wei->db;
// Basic CRUD and Active Recrod support
$db->query();
$db->insert();
$db->update();
$db->delete();
$db->select();
$db->selectAll();
$db->fetch();
$db->fetchAll();
$db->fetchColumn();
$db->find();
$db->findOne();
$db->findAll();
$db->execute();
// Using query builder to build SQL
$record = $db('table');
$record
->select()
->addSelect()
->update()
->delete()
->from()
->where()
->andWhere()
->orWhere()
->groupBy()
->addGroupBy()
->having()
->andHaving()
->orHaving()
->orderBy()
->addOrderBy()
->offset()
->limit()
->page()
->indexBy();
$record->find();
$record->findAll();
$record->fetch();
$record->fetchAll();
$record->fetchColumn();
$record->count();
$record->execute();
$record->getSql();
// ...
// Available validator objects
// Data type and composition
$wei->isAlnum($input);
$wei->isAlpha($input);
$wei->isBlank($input);
$wei->isDecimal($input);
$wei->isDigit($input);
$wei->isDivisibleBy($input);
$wei->isDoubleByte($input);
$wei->isEmpty($input);
$wei->isEndsWith($input);
$wei->isIn($input);
$wei->isLowercase($input);
$wei->isNull($input);
$wei->isNumber($input);
$wei->isRegex($input);
$wei->isRequired($input);
$wei->isStartsWith($input);
$wei->isType($input);
$wei->isUppercase($input);
// Length
$wei->isLength($input);
$wei->isCharLength($input);
$wei->isMaxLength($input);
$wei->isMinLength($input);
// Comparison
$wei->isEqualTo($input);
$wei->isIdenticalTo($input);
$wei->isGreaterThan($input);
$wei->isGreaterThanOrEqual($input);
$wei->isLessThan($input);
$wei->isLessThanOrEqual($input);
$wei->isBetween($input);
// Date and time
$wei->isDate($input);
$wei->isDateTime($input);
$wei->isTime($input);
// File and directory
$wei->isDir($input);
$wei->isExists($input);
$wei->isFile($input);
$wei->isImage($input);
// Network
$wei->isEmail($input);
$wei->isIp($input);
$wei->isTld($input);
$wei->isUrl($input);
$wei->isUuid($input);
// Region: All
$wei->isCreditCard($input);
// Region: Chinese
$wei->isChinese($input);
$wei->isIdCardCn($input);
$wei->isIdCardHk($input);
$wei->isIdCardMo($input);
$wei->isIdCardTw($input);
$wei->isPhoneCn($input);
$wei->isPostcodeCn($input);
$wei->isQQ($input);
$wei->isMobileCn($input);
// Group
$wei->isAllOf($input);
$wei->isNoneOf($input);
$wei->isOneOf($input);
$wei->isSomeOf($input);
// Others
$wei->isAll($input);
$wei->isCallback($input);
$wei->isColor($input);
// Validate and get error message
if (!$wei->isDigit('abc')) {
print_r($wei->isDigit->getMessages());
}
// ...
$wei->request;
$wei->cookie;
$wei->session;
$wei->ua;
$wei->upload;
$wei->response;
$wei->e;
$wei->logger;
$wei->call;
$wei->env;
$wei->error;
// ...
To run the tests:
$ phpunit
Wei is an open-source project released MIT license. See the LICENSE file for details.