buttercms / buttercms-php
此软件包最新版本(3.0.2)没有提供许可证信息。
ButterCMS PHP API 包装器
3.0.2
2023-09-15 14:45 UTC
Requires
- php: >=8.0
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- phpcompatibility/php-compatibility: 10.x-dev
- squizlabs/php_codesniffer: 3.*
README
此包装器允许 PHP 开发者快速轻松地开始使用 ButterCMS。它基于 API 文档。
要求
PHP 5.3.0 及以上版本。
Composer
您可以通过 Composer 安装绑定。运行以下命令
composer require buttercms/buttercms-php
要使用绑定,请使用 Composer 的 自动加载
require_once('vendor/autoload.php');
手动安装
如果您不想使用 Composer,可以下载 最新版本。然后,要使用绑定,请包含 src/ButterCMS.php
文件。
require_once('/path/to/buttercms-php/src/ButterCMS.php');
身份验证
默认情况下,ButterCMS 客户端期望所有读取操作都使用有效的身份验证令牌。有关获取有效读取身份验证令牌的说明,请参阅 API 文档。
可选地,ButterCMS 客户端还接受所有写入操作的有效身份验证令牌。有关获取有效写入身份验证令牌的说明,请参阅 API 文档。
use ButterCMS\ButterCMS; $butterCms = new ButterCMS( '<auth_token>', '<write_auth_token>' // Optional );
页面
有关 params
的列表,请参阅 API 文档
use ButterCMS\ButterCMS; $butterCms = new ButterCMS('<auth_token>', '<write_auth_token>'); // Create a Page $writeApiStatus = $butterCms->createPage($params); // Fetch a Page $page = $butterCms->fetchPage('about', 'welcome-to-the-site'); // Update a Page $pageData = json_decode(json_encode($page), true); $pageData['title'] = 'New Page Title'; $writeApiStatus = $butterCms->updatePage('welcome-to-the-site', $pageData); // These are equivalent echo $page->getFields()['some-field']; echo $page->getField('some-field'); $pagesResponse = $butterCms->fetchPages('news', ['breaking-news' => true]); var_dump($pagesResponse->getMeta()['count']); foreach ($pagesResponse->getPages() as $page) { echo $page->getSlug(); } // Error Handling try { $butterCms->fetchPage('about', 'non-existent-page'); } catch (GuzzleHttp\Exception\BadResponseException $e) { // Happens for any non-200 response from the API var_dump($e->getMessage()); } catch (\UnexpectedValueException $e) { // Happens if there is an issue parsing the JSON response var_dump($e->getMessage()); }
集合
有关 params
和功能列表,请参阅 API 文档
use ButterCMS\ButterCMS; $butterCms = new ButterCMS('<auth_token>', '<write_auth_token>'); $writeApiStatus = $butterCms->createCollectionItem('collection_key', [ 'status' => 'published', 'fields' => [ [ 'field1_key': 'Field value', 'field2_key': 'Field value', ] ] ]); // Get list of specific collections $collectionsResponse = $butterCms->fetchCollections(['collection_key'], ['locale' => 'en']); // Get a collection from the list $collection = $collectionsResponse->getCollection('collection_key'); // Get collection items $items = $collection->getItems(); // Update a specific item $item = $items[0]; $itemData = json_decode(json_encode($item), true); $itemData['fields']['field1_key'] = 'New field value'; $writeApiStatus = $butterCms->updateCollectionItem($collection->getKey(), $item->getId(), $itemData); // Delete a specific item $deleteSuccess = $butterCms->deleteCollectionItem($collection->getKey(), $item->getId()); // Legacy - deprecated $contentFields = $butterCms->fetchContentFields(['collection_key'], ['locale' => 'en']);
博客引擎
有关 params
的列表,请参阅 API 文档
use ButterCMS\ButterCMS; $butterCms = new ButterCMS('<auth_token>', '<write_auth_token>'); // Posts $result = $butterCms->fetchPosts(['page' => 1]); $meta = $result->getMeta(); // Meta information like pagination print_r($meta); $posts = $result->getPosts(); // Get posts array off of result $post = $posts[0]; // Get the first post echo $post->getTitle(); // Access attributes using getXxxx() format. echo $post->getSlug(); $author = $post->getAuthor(); // Access nested objects: Author, Tags, Categories like so echo $author->getFirstName(); echo $author->getLastName(); // Loop through posts foreach ($posts as $post) { echo $post->getTitle(); } // Create a Post $writeApiStatus = $butterCms->createPost($params); // Query for one post $response = $butterCms->fetchPost('post-slug'); $post = $response->getPost(); echo $post->getTitle(); // Update a Post $postData = json_decode(json_encode($post), true); $postData['title'] = 'New Post Title'; $writeApiStatus = $butterCms->updatePost('post-slug', $postData); // Authors $butterCms->fetchAuthor('author-slug'); $butterCms->fetchAuthors(['include' => 'recent_posts']); // Categories $butterCms->fetchCategory('category-slug'); $butterCms->fetchCategories(['include' => 'recent_posts']); // Tags $butterCms->fetchTag('tag-slug'); $butterCms->fetchTags(); // Feeds - returns a SimpleXMLElement object $feed = $butterCms->fetchFeed('rss'); // Search $butterCms->searchPosts('query', ['page' => 1]);