Код доступен на Github или packagist под MIT лицензией. Автор @t3ran13
Установка через Composer
composer require t3ran13/php-graphene-node-client
Использование
<?php
use GrapheneNodeClient\Commands\GetTrendingCategoriesCommand;
use GrapheneNodeClient\Connectors\WebSocket\GolosWSConnector;
$command = new GetTrendingCategoriesCommand(new GolosWSConnector());
$trendingTags = $command->execute(
[
"", //'after'
2 //'limit'
]
);
// вернет
// [
// "id" => 2,
// "result" => [
// [
// "name" => "ru--zhiznx",
// "total_payouts": "410233.942 GBG",
// ...
// ],
// ...
// ]
// ]
$trendingTags = $command->execute(
[
"", //'after'
2 //'limit'
],
'result',
GolosWSConnector::ANSWER_FORMAT_ARRAY // or GolosWSConnector::ANSWER_FORMAT_OBJECT
);
// вернет
// [
// [
// "name" => "ru--zhiznx",
// "total_payouts": "410233.942 GBG",
// ...
// ],
// ...
// ]
Реализованный список комманд
namespace: GrapheneNodeClient\Commands;
- GetContentCommand
- GetDiscussionsByAuthorBeforeDateCommand
- GetDiscussionsByBlogCommand
- GetDiscussionsByCreatedCommand
- GetTrendingCategoriesCommand
Реализованный список коннекторов
namespace: GrapheneNodeClient\Connectors\WebSocket;
- GolosWSConnector (wss://ws.golos.io)
- SteemitWSConnector (wss://ws.steemit.com)
переключение между коннекторами
<?php
use GrapheneNodeClient\Commands\GetContentCommand;
use GrapheneNodeClient\Connectors\InitConnector;
$command = new GetContentCommand(InitConnector::getConnector(InitConnector::PLATFORM_STEEMIT));
$content = $command->execute(
[
0 => "author",
1 => "permlink"
]
);
// вернет
// [
// "id" => 1,
// "result" => [
// ...
// ]
// ]
Создание своего коннектора
<?php
namespace My\App\Connectors;
use GrapheneNodeClient\Connectors\ConnectorInterface;
class MyConnector implements ConnectorInterface
{
public function doRequest(array $data, $answerFormat = self::ANSWER_FORMAT_ARRAY) {
// TODO: Implement doRequest() method.
}
}
Создание своей комманды
<?php
namespace My\App\Commands;
use GrapheneNodeClient\Commands\CommandAbstract;
class MyCommand extends CommandAbstract
{
protected $method = 'method_name';
protected $requiredParams = [
// for list params
0 => [
'param_key1', //обязательное поле с ключем 'param_key1'
'param_key2', //обязательное поле с ключем 'param_key2'
]
//или
//'param_key1', //обязательное поле с ключем 'param_key1'
//'param_key2', //обязательное поле с ключем 'param_key1'
];
}
Дорожная карта
- расширить список реализованных комманд
- попробовать публикацию постов
P.S.
Отпишитесь кто еще с PHP работает над голосом, вместе мы - банда=)
Ну я хоть и не являюсь поклонником пыха, но вряд ли стану отрицать его полезность :-) С почином! Рад что наша опенсурсная банда становится все больше...
спс)
Хорошее начало @t3ran13. Буду следить за развитием я как раз искал php апи для голоса.
спасибо, отлично) если будут идеи - пиши)
@php-node-client, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:
Для меня в принципе ничего нового, но плюсую)
Вот как только допилишь публикацию постов - вот это вот вообще крутяк будет))
это при условии если она возможна) я еще не разщбирался больше чем нужно)
Это полезно, спасибо. Но вот это Graphene это что и где? Над чем это все построено и как что мне установить, чтобы эта надстройка над сокетами заработала?
голос и стим на графене работают, всех ньюансов ен знаю, но если я праольно понимаю, то графен это типа фреймворка, либы с готовыми компонентами)
Что куда и для какой цели вам нужно?
Мне нужно это из абстрактного "чистого" php использовать и не тащить за собой фреймворк. А точнее, не быть привязанным к нему. Я вот попытался работать с wss://ws.golos.io через обычные сокеты php - не взлетает. Мне кажется, что более правильным было бы для базовых инструментов иметь функциональность, а потом уже работать с ними в рамках любого фреймворка.
Приветствую Вас и желаю успехов на платформе Голос!
В этой статье вы сможете найти ответы на большинство вопросов, возникающих у новичков. Также большую подборку ссылок на полезные материалы вы можете найти по этой ссылке
Оперативно получить помощь, вы можете присоединившись к нашему сообществу в Телеграм
Буду признателен, если расскажете, откуда Вы узнали о платформе Голос (ответьте цифрой):
Чтобы быстрей освоится, присоединяйтесь к конкурсу для новичков, который идёт прямо сейчас!