v0.3.0-alpha
2021-07-31 20:53 UTC
Requires
- php: >=7.2.0
- ext-exif: *
- ext-gd: *
- ext-json: *
- ext-mysqli: *
- ext-simplexml: *
- google/apiclient: ^2.10
- katzgrau/klogger: dev-master
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: 8.5.*
This package is auto-updated.
Last update: 2024-09-10 04:27:56 UTC
README
https://www.webfiles-framework.org/
API 文档: http://sebastianmonzel.github.io/webfiles-framework-php-api/
文档: http://sebastianmonzel.github.io/webfiles-framework-php-doc/ (github-repo)
Packagist: https://packagist.org.cn/packages/webfiles-framework/framework
以通用方式访问和描述数据。与远程数据交互。
开发者 & 联系:Sebastian Monzel (mail@sebastianmonzel.de)
webfiles框架是做什么用的?
webfiles框架的目的是提供一个轻量级的库,以标准化的方式与数据交互:webfiles。
webfiles框架将数据库系统、文件系统和远程站点上的数据访问进行了通用化。通过webfile定义和标准化的API,您可以以相同的方式访问不同的系统。
第一步
- 将webfiles-framework作为依赖项
webfiles-framework/framework
添加到您的composer.json
- 定义您的数据结构为webfile定义
- 通过数据存储API在数据库或文件系统中保存和读取数据
示例用例
- 定义您的第一个webfile定义
- 在数据存储中存储webfile - 根据webfiles定义,数据库表将自动创建。
- 从DirectoryDatastore读取
- 从DatabaseDatastore(实际上是mysql)读取
- 将数据从一个数据存储传输到另一个数据存储
- 从RemoteDatastore读取 - 远程数据存储是位于网络中其他服务器上的数据存储
定义您的第一个webfile定义
use webfilesframework\core\datasystem\file\format\MWebfile; class Contact extends MWebfile { private $m_sFirstname; // attributes has to be in the given scheme - all attributes with "m_" as prefix gets persisted - "s" defines the type of the attribute (string) private $m_sLastname; private $m_sCity; public function setFirstname($m_sFirstname) { $this->m_sFirstname = $m_sFirstname; } public function getFirstname() { return $this->m_sFirstname; } public function setLastname($m_sLastname) { $this->m_sLastname = $m_sLastname; } public function getFirstname() { return $this->m_sFirstname; } public function setCity($m_sCity) { $this->m_sCity = $m_sCity; } public function getCity($m_sCity) { $this->m_sCity = $m_sCity; } }
在数据存储中存储webfile
通过目录
<?php use webfilesframework\core\datastore\types\directory\MDirectoryDatastore; use webfilesframework\core\datasystem\file\system\MDirectory; $directoryDatastore = new MDirectoryDatastore(new MDirectory("yourDirectoryToStoreWebfiles")); $contact = new Contact(); $contact->setId(1); $contact->setFirstname("Sebastian"); $contact->setLastname("Monzel"); $directoryDatastore->storeWebfile($contact);
或通过数据库
<?php use webfilesframework\core\datastore\types\directory\MDirectoryDatastore; use webfilesframework\core\datasystem\file\system\MDirectory; $databaseDatastore = new MDatabaseDatastore( new MDatabaseConnection( "localhost", "yourDatabaseToStoreWebfiles", "tablePrefixInDatabaseForActualDatastore", // will add this string before every created table name "username", "password" ) ); $contact = new Contact(); $contact->setFirstname("Sebastian"); $contact->setLastname("Monzel"); $databaseDatastore->storeWebfile($contact);
从DirectoryDatastore读取
<?php use webfilesframework\core\datastore\types\directory\MDirectoryDatastore; use webfilesframework\core\datasystem\file\system\MDirectory; $directoryDatastore = new MDirectoryDatastore(new MDirectory("yourDirectoryToStoreWebfiles")); $directoryDatastore->getAllWebfiles();
从DatabaseDatastore(实际上是mysql)读取
<?php use webfilesframework\core\datastore\types\database\MDatabaseDatastore; use webfilesframework\core\datasystem\database\MDatabaseConnection; $databaseDatastore = new MDatabaseDatastore( new MDatabaseConnection( "localhost", "yourDatabaseToStoreWebfiles", "tablePrefixInDatabaseForActualDatastore", // will add this string before every created table name "username", "password" ) ); $databaseDatastore->getAllWebfiles();
在数据存储中通过模板搜索
待办事项
将数据从一个数据存储传输到另一个数据存储
<?php use webfilesframework\core\datastore\types\directory\MDirectoryDatastore; use webfilesframework\core\datasystem\file\system\MDirectory; use webfilesframework\core\datastore\MDatastoreTransfer; $source = new MDirectoryDatastore(new MDirectory("sourceDir")); $target = new MDatabaseDatastore(new MDatabaseConnection("localhost","wonderfulDatabasename","mytableprefix","myuser","mypassword")); $datastoreTransfer = new MDatastoreTransfer($source, $target); $datastoreTransfer->transfer();
从RemoteDatastore读取
您可以通过http(s)使数据存储远程访问。`MRemoteDatastoreEndpoint`封装数据存储以使其可访问。在另一端,您可以使用`MRemoteDatastore`来访问封装的数据存储。
服务器端提供数据存储的访问
<?php use webfilesframework\core\datastore\types\remote\MRemoteDatastoreEndpoint; use webfilesframework\core\datastore\types\directory\MDirectoryDatastore; use webfilesframework\core\datasystem\file\system\MDirectory; $remoteDatastoreEndpoint = new MRemoteDatastoreEndpoint( new MDirectoryDatastore(new MDirectory("localDirectory")) ); $remoteDatastoreEndpoint->handleRemoteCall();
客户端访问数据存储
<?php use webfilesframework\core\datastore\types\remote\MRemoteDatastore; // url on which the method $remoteDatastoreEndpoint->handleRemoteCall(); is reachable: $datastoreUrl = "https://:1234/datastore/"; $remoteDatastore = new MRemoteDatastore($datastoreUrl); $remoteDatastore->getAllWebfiles();