zend_firebase / zend_firebase
用于管理所有 Firebase 的 REST 和流操作的 PHP 库
v0.4.4
2017-04-10 14:24 UTC
Requires
- php: >=7.0
- guzzlehttp/guzzle: 6.2.3
- monolog/monolog: 1.21.0
Requires (Dev)
- friendsofphp/php-cs-fixer: v1.12.3
- phpunit/php-code-coverage: *
- phpunit/phpunit: 5.7.0
- squizlabs/php_codesniffer: 2.7.0
This package is not auto-updated.
Last update: 2024-09-28 19:58:16 UTC
README
在Packagist上可用。
###先决条件
- PHP >= 7.0
- Firebase 活跃账户
- Composer(推荐,但不是必需的)
使用 Composer 将 Firebase PHP 添加到项目中
cd <your_project> composer require zend_firebase/zend_firebase dev-master
有关 Composer 的更多信息,请访问getcomposer.org。
使用示例
use ZendFirebase\Firebase, ZendFirebase\Authentication\FirebaseAuth; $auth = new FirebaseAuth(); $auth->setBaseURI('https://your_url_from_firebase/'); $auth->setServertoken('your_firebase_token'); /* --- EXAMPLE OF DATA TO POST REMEMBER ALL DATA MUST BE ARRAY --- */ $test = array( "name" => "TEST", "id" => 5245, "text" => "hello TEST 5245", "status" => "sended" ); /* --- CREATE NEW OBJECT AND PASS CREDENTIAL --- */ $firebase = new Firebase($auth); /* --- CHOOCE THE OPERATION (SAME NAME OF FIREBASE DOCS) --- */ $firebase->post('path', $test);
在“examples”文件夹中,您可以找到一些关于库使用的其他简单完整示例。进行下一步!
响应使用
/* --- FIREBASE DATA FROM REALTIME DB IS AN ARRAY --- */ $firebase->getFirebaseData(); // <- array, data returning from Firebase echo $firebase->getOperation(); // <- string, operation just made (for example: GET or POST etc...) echo $firebase->getStatus(); // <- numeric, status of request (for example: 200 or 400 or 500)
进行下一步!
在执行 'post' 命令后获取 Firebase 生成的最后一个自动递增 ID
/* --- GET LAST AUTO-INCREMENT ID INSERED AFTER POST COMMAND --- */ $firebase->getLastIdStored();
进行下一步!
支持的命令
/* --- STORING DATA --- */ $firebase->post('path', $test,$options); /* --- OVERRIDE DATA --- */ $firebase->put('path', $test,$options); /* --- UPDATE DATA --- */ $firebase->patch('path', $test,$options); /* --- RETRIEVE DATA --- */ $firebase->get('path',$options); /* --- DELETE DATA --- */ $firebase->delete('path',$options); /* --- RETRIEVE RULES --- */ $firebase->getRules('.settings/rules',$options);
进行下一步!
通过 REST 管理规则
####读取
require_once __DIR__ . '/vendor/autoload.php'; use ZendFirebase\Firebase; use ZendFirebase\Authentication\FirebaseAuth; $auth = new FirebaseAuth(); $auth->setBaseURI(/* complete with your firebase url */); $auth->setServertoken(/* complete with your firebase token */); $path = '.settings/rules'; // path of rules $firebase = new Firebase($auth); /* call function */ $firebase->getRules($path); /* show rules! */ print_r($firebase->getFirebaseData());
####写入
require_once __DIR__ . '/vendor/autoload.php'; use ZendFirebase\Firebase; use ZendFirebase\Authentication\FirebaseAuth; $auth = new FirebaseAuth(); $auth->setBaseURI(/* complete with your firebase url */); $auth->setServertoken(/* complete with your firebase token */); $path = '.settings/rules'; // path of rules $firebase = new Firebase($auth); $rules =[ "rules" => [ ".read" => true, ".write" => "!data.exists() || !newData.exists()" ] ]; /* call function to write */ $firebase->writeRules($path,$rules); /* show result! */ print_r($firebase->getFirebaseData());
现在您能够管理规则。进行下一步!
REST 流 API
创建一个名为 your_file_name.php 的新文件。
在此新文件中插入以下代码
use ZendFirebase\Firebase, ZendFirebase\Authentication\FirebaseAuth; $auth = new FirebaseAuth(); $auth->setBaseURI('https://your_url_from_firebase/'); $auth->setServertoken('your_firebase_token'); /* --- CREATE NEW OBJECT AND PASS CREDENTIAL --- */ $firebase = new Firebase($auth); $options = []; // container options as type array $callback = 'callbackFunction'; // name of callback function as type string function callbackFunction(...$params){ // all code needed } $print = true; /* --- SET PATH, NAME OF FOLDER WHERE STORE LOGS, MILLISECONDS OF DELAY BETWEEN NEW REQUEST (not required, default 5000), CALLBACK FUNCTION, ARRAY OPTIONS (not required, default []), PRINT (not required, default TRUE) --- */ $firebase->startStream('path', 'logs/', 5000, $callback, $options, $print);
现在要运行监听器,请在终端中运行您文件,使用以下命令
php your_file_name.php
此方法启动监听器并记录更改日志。
PHPUnit 测试
所有单元测试都位于“/tests”目录中。由于使用了接口,测试必须在隔离环境中运行。
项目配置已设置,只需使用简单命令即可执行所有测试
cd <your_project> phpunit
如果您想运行单个测试,只需运行
cd <your_project> phpunit name_and_path_of_the_file_that_you_want_to_test.php