php-extended / php-mioga-fgfr-api
一个连接到 mioga.finances.gouv.fr 实例的 php API 包装器
Requires
- php: >=7.1
- php-extended/php-json-object: ^5
- php-extended/polyfill-php80-stringable: >=1
- psr/http-client: ^1
- psr/http-factory: ^1
README
一个连接到 mioga.finances.gouv.fr 实例的 php API 包装器
安装
此库的安装通过 composer 完成。从他们的网站下载 composer.phar
。然后将其添加到您的 composer.json 中
"require": {
...
"php-extended/php-mioga-fgfr-api": "^3",
...
}
然后运行 php composer.phar update
安装此库。此库中所有类的自动加载都通过 composer 的自动加载器完成。
支持的功能
功能 | 状态 | 主要方法 |
---|---|---|
Global.Login | 实现 | Mioga->ensureLoggedIn() |
Magellan.Folder.Create | 实现 | MiogaFolder->createChildFolder() |
Magellan.Folder.Browse | 实现 | MiogaFolder->hasFile() |
Magellan.Folder.Rename | 实现 | MiogaFolder->rename() |
Magellan.Folder.Delete | 实现 | MiogaFolder->delete() |
Magellan.Folder.Copy | 实现 | MiogaFolder->copyTo() |
Magellan.Folder.Move | 实现 | MiogaFolder->moveTo() |
Magellan.Folder.ZDDownload | 实现 | MiogaFolder->zipDownload() |
Magellan.Folder.ZSDownload | 实现 | MiogaFolder->zipDownloadToStream() |
Magellan.File.Upload | 实现 | MiogaFolder->uploadFile() |
Magellan.File.ZUpload | 实现 | MiogaFolder->uploadZipFileAndDecompress() |
Magellan.File.Rename | 实现 | MiogaFile->rename() |
Magellan.File.Delete | 实现 | MiogaFile->delete() |
Magellan.File.Copy | 实现 | MiogaFile->copyTo() |
Magellan.File.Move | 实现 | MiogaFile->moveTo() |
Magellan.File.Lock | 实现 | MiogaFile->lock() |
Magellan.File.Unlock | 实现 | MiogaFile->unlock() |
Magellan.File.DDownload | 实现 | MiogaFile->download() |
Magellan.File.SDownload | 实现 | MiogaFile->downloadToStream() |
Magellan.MassDownload | 实现 | MiogaDownloader->synchronize() |
Magellan.MassUpload | 实现 | MiogaUploader->synchronize() |
Bottin.User.Add | 实现 | BottinApi->addUser() |
Bottin.User.Delete | 实现 | BottinApi->removeUser() |
Bottin.User.List | 实现 | BottinApi->getUserData() |
Bottin.User.Enable | 实现 | BottinApi->enableUser() |
Bottin.User.Disable | 实现 | BottinApi->disableUser() |
Bottin.Status.List | 实现 | BottinApi->getUserStatuses() |
基本用法
全局上,如果发生错误,所有方法都会抛出 \PhpExtended\Mioga\MiogaException
异常。可能是连接问题、参数问题、服务器问题或其他任何问题。
Global.Login
此功能执行特定账户的登录和持久会话管理。
use PhpExtended\Mioga\Mioga;
$mioga = new Mioga($instance, $login, $password);
创建代理对象是登录所需做的唯一事情。登录不是在对象实例化时进行的,而是在对实例中的有用信息进行第一次请求之前。
Magellan.Folder.Create
此功能在特定目录下创建目录。
$folder->createFolder('<subfolder name>');
此方法创建一个文件夹或尝试抛出异常。
Magellan.Folder.Browse
此功能列出特定目录下的文件和目录。
$folder = $mioga->getFolder($path);
此方法返回一个 MiogaFolder 对象或尝试抛出异常。
Magellan.Folder.Rename
此功能对特定目录进行重命名。
$folder->rename('<new name>');
此方法重命名文件夹或尝试抛出异常。警告,一旦此文件夹被重命名,节点就无效,其所有层次结构都应被视为已死亡节点。您必须丢弃对当前节点的引用,并从父文件夹获取一个新的。
Magellan.Folder.Delete
此功能删除特定目录及其所有子层次结构。
$folder->delete();
此方法删除文件夹或尝试抛出异常。警告,一旦此文件夹被删除,节点就无效。应从父文件夹重新加载层次结构。
Magellan.Folder.Copy
此功能将特定目录及其所有子层次结构复制到另一个目录中。
$folder->copyFolderToFolder($otherFolder);
此方法复制整个层次结构或尝试抛出异常。
Magellan.Folder.Move
此功能将指定目录及其所有子目录移动到另一个目录。
$folder->moveFolderToFolder($otherFolder);
此操作(剪切粘贴)将整个层次结构移动或尝试抛出异常。警告,一旦此文件夹被移动,节点将无效。应从父文件夹重新加载层次结构。您必须丢弃对当前节点的引用,并从父文件夹获取一个新的节点。
Magellan.Folder.ZDDownload
此功能直接下载目标文件夹。该文件夹及其所有文件层次结构被压缩成zip文件。
$data = $folder->zipDownload();
此对象的zipDownload
方法返回表示已下载文件夹的zip文件的原始数据。警告:此方法将整个文件下载到内存中,可能会超出大文件内存限制。因此,建议使用流式下载方法。
Magellan.Folder.ZSDownload
此功能执行目标文件夹的流式下载。该文件夹及其所有文件层次结构被压缩成zip文件。
$stream = fopen($localpath);
$folder->zipDownloadToStream($stream);
此对象的zipDownloadToStream
方法不返回任何内容,而是通过将zip文件下载到指定的输出流来执行流式下载。此方法是阻塞的。
Magellan.File.Upload
此功能执行从实际文件系统给定路径上传文件。
$folder->uploadFile($filePath);
此方法在$filePath
位置上传文件,或尝试抛出异常。如果文件在给定路径上不存在,也会抛出异常。
Magellan.File.ZUpload
此功能执行从实际文件系统给定路径上传zip文件并将其解压到文件系统中。
$folder->uploadZipFileAndUncompress($filePath);
此方法在$filePath
位置上传文件,或尝试抛出异常。如果文件在给定路径上不存在,或者无法解压文件,也会抛出异常。
Magellan.File.Rename
此功能执行特定文件的重命名。
$file->rename('<new name>');
尝试重命名文件或抛出异常。警告:一旦此文件被重命名,节点将无效。应从父文件夹重新加载层次结构。您必须丢弃对当前节点的引用,并从父文件夹获取一个新的节点。
Magellan.File.Delete
此功能执行特定文件的删除。
$file->delete();
尝试删除文件或抛出异常。警告:一旦此文件被删除,节点将无效。应从父文件夹重新加载层次结构。
Magellan.File.Copy
此功能执行将特定文件复制到另一个目录。
$file->copyFileToFolder($otherFolder);
尝试复制文件或抛出异常。
Magellan.File.Move
此功能执行将特定文件移动到另一个目录。
$file->moveFileToFolder($otherFolder);
尝试移动(剪切粘贴)文件或抛出异常。警告:一旦此文件被移动,节点将无效。应从父文件夹重新加载层次结构。您必须丢弃对当前节点的引用,并从父文件夹获取一个新的节点。
Magellan.File.Lock
此功能执行对特定文件的锁定。
$file->lock();
尝试锁定文件或抛出异常。
Magellan.File.Unlock
此功能执行对特定文件的解锁。
$file->unlock();
尝试解锁文件或抛出异常。
Magellan.File.DDownload
此功能执行直接下载目标文件。
$data = $file->download();
MiogaFile对象的download
方法返回文件的原始数据。警告:此方法将整个文件下载到内存中,可能会超出大文件内存限制。因此,建议使用流式下载方法。
Magellan.File.SDownload
此功能执行目标文件的流式下载。
$stream = fopen($localpath);
$file->downloadToStream($stream);
此对象的downloadToStream
方法不返回任何内容,而是通过将文件下载到指定的输出流来执行流式下载。此方法是阻塞的。
Magellan.MassDownload
此功能通过递归下载远程服务器上的所有文件并将它们保存到本地文件夹层次结构中,在mioga实例中的文件夹和本地文件夹之间执行文件夹层次结构同步。
use PhpExtended\Mioga\MiogaDownloader;
$downloader = new MiogaDownloader($mioga, $miogaFolder, $localFolder);
$downloader->synchronize();
此方法尝试下载所有文件并将它们写入文件系统或抛出异常尝试写入。
Magellan.MassUpload
此功能在本地文件夹与mioga实例中的文件夹之间执行文件夹层次结构同步,通过递归地将本地文件夹层次结构中的所有文件上传到远程服务器。
use PhpExtended\Mioga\MiogaUploader;
$uploader = new MiogaUploader($mioga, $localFolder, $miogaFolder);
$uploader->synchronize();
此方法尝试上传所有文件并将它们写入文件系统或抛出异常尝试写入。
Bottin.User.Add
此功能执行特定用户的添加。
$bottinApi->addUser($user_email);
如果无法通过电子邮件在ldap中找到用户,则此方法抛出MiogaException
,如果过程成功则返回true,如果失败则返回false。
Bottin.User.Delete
此功能执行特定用户的删除。
$bottinApi->deleteUser($miogaUser);
此方法删除指定的用户或抛出异常尝试删除。
Bottin.User.List
此功能执行列出所有可用用户。
$userList = $bottinApi->getUserData();
// to be able to get specific users, do:
foreach($userList as $user)
{
/* @var $user \PhpExtended\Mioga\Bottin\MiogaUser */
// do something
}
此方法返回所有用户或抛出异常尝试返回。
Bottin.User.Enable
此功能重新激活已禁用用户。
$bottinApi->enableUser($miogaUser);
如果成功,则此方法返回true,失败则返回false,服务器失败时抛出异常。
Bottin.User.Disable
此功能禁用活动用户。
$bottinApi->disableUser($miogaUser);
如果成功,则此方法返回true,失败则返回false,服务器失败时抛出异常。
Bottin.Status.List
此功能执行列出所有可用状态。
$statusList = $bottinApi->getUserStatuses();
// to be able to compare with existing statuses, do:
foreach($statusList as $status)
{
/* @var $status \PhpExtended\Mioga\Bottin\MiogaStatus */
if($status->getIdent() === '<value to compare>')
{
// do something
}
}
此方法返回所有用户状态或抛出异常尝试返回。
许可证
MIT(见许可证文件)。