Collection Bundle

Aside from the standard Symfony distribution, there are many bundles from third-party developers that greatly simplify application development (after all, why reinvent the wheel when there is a ready-made solution available). Let's not get into a debate about the often presence of functionality in bundles that will never be used in your application—development speed will cover these fairly minor issues. Here is a modest collection of bundles that greatly simplify life.

To install a bundle, first add it to your project using composer, for example:

composer require "presta/sitemap-bundle:~1.4"


Then add it to app/AppKernel.php:

public function registerBundles()
{
    $bundles = array(
...
        new Presta\SitemapBundle\PrestaSitemapBundle(),
    )
...
}

That's it, the bundle is installed and connected to Symfony. However, some bundles require additional configuration in app/config/config.yml, so be sure to read the installation manuals for specific bundles.

Now let's see the list of bundles:

SonataAdminBundle - bundle for building an administration panel. It allows you to quickly configure editable entities with all their relationships and so on. It's perfect for creating an admin panel in just 5 minutes))) But if you spend a little time overriding templates, you can create a very nice and functional admin panel.

FOSUserBundle - bundle for user authentication. It allows you to create users (registration, login, etc., email confirmation, etc.) It has everything you need, again, for quickly setting up user authentication. But even for complex solutions, you can use it as a starting point.

HWIOauthBundle - FOSUserBundle doesn't support authenticating with social services (such as contacts, Facebook, classmates, and so on =)) HWIOauthBundle allows you to implement authentication using various social services (it supports a wide range of services out of the box and it's easy to add support for others).

KnpMenuBundle - for building menus. At first, it may seem unnecessary, but if you tag services and automatically build the menu based on that when adding new functionality... =)

PagerfantaBundle - for creating pagination. (Feed it a query and get the desired range). It's convenient enough, but customizing the appearance can be problematic (you have to add a very specific PHP template). For more customization options, consider using KnpPaginatorBundle.

DoctrineMigrationBundle - for safely migrating the database. It will be very useful on production.

FOSJsRoutingBundle - a bundle that allows you to use your routes in JavaScript scripts

Guzzle - not a bundle, but a useful component - an HTTP client

DoctrineFixturesBundle - a bundle for working with fixtures (fixtures are test data).

AliceBundle - an extended bundle for working with fixtures. It has a very useful feature: it supports loading data from .yml files, as well as references, method calls, and much more.

BreadcrumbsBundle - a bundle for creating breadcrumbs. It will be very useful when creating blog/forum functionality or something similar.

PrestaSitemapBundle - for generating sitemap. It can be done either by adding parameters to routes or by using events.

EkoFeedBundle - for building (and reading) RSS feeds.

AnhSapeBundle - for integrating with Sape (the author of this blog contributed to this bundle =)).

FOSElasticaBundle - integration of Elasticsearch and the Symfony framework. It handles connection, configuration, query and filter writing.

LiipImagineBundle - a bundle for building image thumbnails. It can use either GD or Imagick. It's very easy to use: configure a filter and apply it to an image in Twig. The file will be lazily created in the cache.

I may have forgotten something important, I'll add it over time.)

You can search for bundles conveniently at https://packagist.org/ and http://knpbundles.com/.