zend_firebase/zend_firebase

用于管理所有 Firebase 的 REST 和流操作的 PHP 库

v0.4.4 2017-04-10 14:24 UTC

README

Scrutinizer Code Quality Travis CI Build Status codecov

PHP 7 ready Total Downloads Latest Stable Version License

基于Firebase REST API

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

BSD 3-Clause License

阅读 BSD 许可证