New PHP Package: Discord Table Builder

Hey there! If you’ve ever tried to create a table in a Discord message, you know it’s not exactly straightforward. The Discord API doesn’t have built-in support for tables or any easy way to format tabular data. It’s one of those small but annoying pro…


This content originally appeared on DEV Community and was authored by Martijn Smit

Hey there! If you've ever tried to create a table in a Discord message, you know it's not exactly straightforward. The Discord API doesn't have built-in support for tables or any easy way to format tabular data. It's one of those small but annoying problems that can really slow you down.

After searching for an existing solution and coming up empty, I decided to tackle this issue head-on. The result? A new PHP package called Discord Table Builder.

What's Discord Table Builder All About?

Discord Table Builder is a PHP package designed to help you create tables for Discord messages without the hassle. Here's what it brings to the table (pun intended):

  • Automatically figures out the width of each column based on the content
  • Supports multiple rows and columns (within Discord API limits)
  • Lets you add a URL to any row, making it clickable

Here's an example of a table with a WhatPulse leaderboard, the reason I created this package:

Image description

Getting Started

First things first, let's get the package installed:

composer require smitmartijn/discord-table-builder

How It Works

Let's walk through a quick example. Say you're building a game leaderboard. Here's how you'd use Discord Table Builder:

<?php

require_once __DIR__ . '/vendor/autoload.php';
use Smitmartijn\DiscordTableBuilder;

// Set up the leaderboard table
$table = new DiscordTableBuilder\DiscordEmbedTable([
  'titles' => ['Position', 'Player', 'Points'],
  'padding' => 8
]);

// Add some rows (with a special URL for first place)
$table->addRow(['1st', 'Charlie', '300'], ['url' => 'https://lostdomain.org']);
$table->addRow(['2nd', 'Alice', '100']);

// Prepare for Discord API call
$messageContent = [
  "tts" => false,
  "embeds" => [
    [
      "title" => "Weekly Leaderboard",
      "description" => "Here are the top players this week:",
      "fields" => [$table->toField()],
    ]
  ]
];

// Send to Discord (you'll need your own function for this part)
sendToDiscord($messageContent);

The Result

When you send this message, your Discord users will see something like this:

1st             Charlie        300
2nd             Alice          100

And here's a cool feature - that first row is actually a clickable link to https://lostdomain.org.

Wrapping Up

Discord Table Builder is there to make it easier when it comes to formatting data in Discord messages. No more fiddling with spaces or struggling with alignment - just plug in your data and you're good to go.

If you have any questions or suggestions, feel free to check out the project on GitHub. And if you use it in your projects, I'd love to hear about it!


This content originally appeared on DEV Community and was authored by Martijn Smit


Print Share Comment Cite Upload Translate Updates
APA

Martijn Smit | Sciencx (2024-09-13T10:44:32+00:00) New PHP Package: Discord Table Builder. Retrieved from https://www.scien.cx/2024/09/13/new-php-package-discord-table-builder/

MLA
" » New PHP Package: Discord Table Builder." Martijn Smit | Sciencx - Friday September 13, 2024, https://www.scien.cx/2024/09/13/new-php-package-discord-table-builder/
HARVARD
Martijn Smit | Sciencx Friday September 13, 2024 » New PHP Package: Discord Table Builder., viewed ,<https://www.scien.cx/2024/09/13/new-php-package-discord-table-builder/>
VANCOUVER
Martijn Smit | Sciencx - » New PHP Package: Discord Table Builder. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/09/13/new-php-package-discord-table-builder/
CHICAGO
" » New PHP Package: Discord Table Builder." Martijn Smit | Sciencx - Accessed . https://www.scien.cx/2024/09/13/new-php-package-discord-table-builder/
IEEE
" » New PHP Package: Discord Table Builder." Martijn Smit | Sciencx [Online]. Available: https://www.scien.cx/2024/09/13/new-php-package-discord-table-builder/. [Accessed: ]
rf:citation
» New PHP Package: Discord Table Builder | Martijn Smit | Sciencx | https://www.scien.cx/2024/09/13/new-php-package-discord-table-builder/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.