PHP code example of khalyomede / reorder-before-after
1. Go to this page and download the library: Download khalyomede/reorder-before-after library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
khalyomede / reorder-before-after example snippets
use Khalyomede\ReorderBeforeAfter\Item;
use Khalyomede\ReorderBeforeAfter\Listing;
use Khalyomede\ReorderBeforeAfter\Placement;
$listing = new Listing();
$listing->push(new Item("bag", 1));
$listing->push(new Item("chair", 2));
$listing->push(new Item("table", 3));
$listing->push(new Item("book", 4));
$listing->reorder("book", Placement::Before, "table");
assert($listing->find("bag")->order === 1);
assert($listing->find("chair")->order === 2);
assert($listing->find("book")->order === 3);
assert($listing->find("table")->order === 4);
use Khalyomede\ReorderBeforeAfter\Item;
use Khalyomede\ReorderBeforeAfter\Listing;
final readonly class Product
{
public function __construct(
public string $name,
public int $quantity,
public float $unitPrice,
) {}
}
$bags = new Product("bag", 15, 149.99);
$tables = new Product("table", 4, 89.99);
$chairs = new Product("chairs", 1, 399.99);
$listing = new Listing();
$listing->push(new Item($bags, 1));
$listing->push(new Item($tables, 2));
$listing->push(new Item($chairs, 3));
use Khalyomede\ReorderBeforeAfter\Item;
use Khalyomede\ReorderBeforeAfter\Listing;
use Khalyomede\ReorderBeforeAfter\Placement;
$listing = new Listing();
$listing->push(new Item("bag", 1));
$listing->push(new Item("chair", 2));
$listing->push(new Item("table", 3));
$listing->push(new Item("book", 4));
echo $listing->find("bag"); // Item(value: "bag", order: 1)
use Khalyomede\ReorderBeforeAfter\Item;
use Khalyomede\ReorderBeforeAfter\Listing;
use Khalyomede\ReorderBeforeAfter\Placement;
final readonly class Product
{
public function __construct(
public string $name,
public int $quantity,
public float $unitPrice,
) {}
}
$bags = new Product("bag", 15, 149.99);
$tables = new Product("table", 4, 89.99);
$chairs = new Product("chairs", 1, 399.99);
$listing = new Listing();
$listing->push(new Item($bags, 1));
$listing->push(new Item($tables, 2));
$listing->push(new Item($chairs, 3));
echo $listing->find($bags); // Item(value: Product(name: "bag", quantity: 15, unitPrice: 149.99), order: 1)
use Khalyomede\ReorderBeforeAfter\Listing;
$listing = Listing::from([
new Item("bag", 1),
new Item("chair", 2),
new Item("book", 3),
new Item("table", 4),
]);
$listing->reorder("bag", Placement::After, "book");
assert($listing->find("bag")->order === 3);
use Khalyomede\ReorderBeforeAfter\Listing;
$listing = Listing::from([
new Item("bag", 1),
new Item("chair", 2),
new Item("book", 3),
new Item("table", 4),
]);
$products = $listing->all();
foreach ($products as $product) {
echo $product; // "bag" or "chair" or "book" or "table"
}
use App\Models\Product;
use Khalyomede\ReorderBeforeAfter\Listing;
$items = Product::all()->map(fn (Product $product): Item => new Item($product, $product->order));
$listing = Listing::from($items);
$listing->applyWith(function (Item $item): void {
$item->value->order = $item->order;
$item->value->save();
});
use App\Models\Product;
use Khalyomede\ReorderBeforeAfter\Listing;
$products = Product::all();
$listing = Listing::outOf($products, fn (Product $product): Item => new Item($product, $product->order));
use App\Models\Product;
use Khalyomede\ReorderBeforeAfter\Listing;
$listing = Listing::outOf(Product::all(), fn (Product $product): Item => new Item($product, $product->order));
$listing->matchWith(fn (Product $left, Product $right): bool => $left->id === $right->id);
// Or with the shorter Eloquent::is() method
$listing->matchWith(fn (Product $left, Product $right): bool => $left->is($right));
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.