A wrapper for the official Discord REST, gateway and voice APIs. Documentation is available here, albeit limited at the moment, as well as a class reference. Feel free to ask questions in the Discord server above.
For testing and stability it would be greatly appreciated if you were able to add our test bot to your server. We don't store any data - the bot simply idles and does not interact with anyone and is used to test stability with large numbers of guilds. You can invite the bot here.
Before you start using this Library, you need to know how PHP works, you need to know the language and you need to know how Event Loops and Promises work. This is a fundamental requirement before you start. Without this knowledge, you will only suffer.
ini_set('memory_limit', '-1');
.ext-gmp
extension enabled for handling Permissions.ext-json
ext-zlib
Unfortunately PHP on Windows does not have access to the Windows Certificate Store. This is an issue because TLS gets used and as such certificate verification gets applied (turning this off is not an option).
You will notice this issue by your script exiting immediately after one loop turn without any errors. Unfortunately there is for some reason no error or exception.
As such users of this library need to download a Certificate Authority extract from the cURL website.
The path to the caextract must be set in the php.ini
for openssl.cafile
.
ext-uv
(recommended), ext-libev
or ext-event
for a faster, and more performant event loop.ext-mbstring
if handling non-english characters.ext-gmp
if using 32-bit PHP.ext-sodium
DiscordPHP is installed using Composer.
composer require team-reflex/discord-php
. This will install the latest release.
composer require team-reflex/discord-php dev-master
.include __DIR__.'/vendor/autoload.php';
<?php
include __DIR__.'/vendor/autoload.php';
use Discord\Discord;
use Discord\Parts\Channel\Message;
use Discord\WebSockets\Event;
$discord = new Discord([
'token' => 'bot-token',
]);
$discord->on('ready', function (Discord $discord) {
echo "Bot is ready!", PHP_EOL;
// Listen for messages.
$discord->on(Event::MESSAGE_CREATE, function (Message $message, Discord $discord) {
echo "{$message->author->username}: {$message->content}", PHP_EOL;
});
});
$discord->run();
See examples folder for more.
Documentation can be found here. Raw documentation can be found in-line in the code. Community contributed tutorials can be found on the wiki.
We are open to contributions. However, please make sure you follow our coding standards (PSR-4 autoloading and custom styling). Please run php-cs-fixer before opening a pull request by running composer run-script cs
.
MIT License, © David Cole and other contributers 2016-present.