Skip to content

yaovicoder/sluggable-bundle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sluggable Bundle

License

A Symfony bundle that provides automatic slug generation and slug-based routing (ParamConverter resolution by ID or slug) for Doctrine entities implementing SluggableInterface.

✨Features

  • Generic SluggableInterface for entities
  • ParamConverter that works with both IDs and slugs
  • Automatic service registration
  • Works with Gedmo Sluggable behavior

🧩Installation

  1. Install the bundle via Composer:
composer require yic/sluggable-bundle

⚙️Basic Usage

Implement Sluggable

use YIC\SluggableBundle\Entity\Interface\SluggableInterface; use Gedmo\Mapping\Annotation as Gedmo; class Product implements SluggableInterface { #[Gedmo\Slug(fields: ['title'])] private ?string $slug = null; public function getSlug(): ?string { return $this->slug; } public function setSlug(?string $slug): self { $this->slug = $slug; return $this; } }

Use in controllers

#[Route('/products/{id}', name: 'product_show')] public function show(Product $product): Response { // Works with: // /products/1 (ID) // /products/some-name (slug) }

Configuration

Default config (config/packages/yic_sluggable.yaml):

yic_sluggable: # Enable slug fallback when ID not found slug_fallback: true 

Development Setup

# Clone git clone https://github.com/yaovicoder/sluggable-bundle.git cd sluggable-bundle # Install deps composer install # Run tests composer test

📦 Dependencies

Core Requirements

| Package | Version | Purpose | |----------------------------------|-----------|---------------------------| | php | ^8.1 | PHP runtime | | symfony/framework-bundle | ^6.4 | Symfony core | | doctrine/orm | ^2.15 | Database abstraction | | gedmo/doctrine-extensions | ^3.11 | Slug behavior | | sensio/framework-extra-bundle | ^6.0 | ParamConverter |

Development Dependencies

| Package | Version | Purpose | |----------------------------------|-----------|---------------------------| | phpunit/phpunit | ^10.0 | Testing | | symfony/phpunit-bridge | ^6.4 | Symfony test integration | | vimeo/psalm | ^5.22 | Static analysis | 

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages