Symfony Blog Bundle
Symfony Bundle for adding simple blog functionality to existing or new Symfony project.
Requirements
Version ^4.0 - Symfony ^4.0, twig/twig:^2.0 Version ^3.0 - Symfony ^3.0 Version ^1.0|^2.0 - Symfony ^2.7
Installation
1. With Symfony Flex
TODO
2. Without Symfony Flex
- Install bundle
$ composer.phar require harentius/blog-bundle
- Add bundles (in config/bundles.php or Kernel):
<?php
// config/bundles.php
return [
//...
Harentius\BlogBundle\HarentiusBlogBundle::class => ['all' => true],
//...
Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle::class => ['all' => true],
Knp\Bundle\PaginatorBundle\KnpPaginatorBundle::class => ['all' => true],
Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true],
WhiteOctober\BreadcrumbsBundle\WhiteOctoberBreadcrumbsBundle::class => ['all' => true],
Sonata\CoreBundle\SonataCoreBundle::class => ['all' => true],
Sonata\BlockBundle\SonataBlockBundle::class => ['all' => true],
Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle::class => ['all' => true],
Sonata\AdminBundle\SonataAdminBundle::class => ['all' => true],
Sonata\TranslationBundle\SonataTranslationBundle::class => ['all' => true],
Sonata\Doctrine\Bridge\Symfony\Bundle\SonataDoctrineBundle::class => ['all' => true],
FOS\JsRoutingBundle\FOSJsRoutingBundle::class => ['all' => true],
Presta\SitemapBundle\PrestaSitemapBundle::class => ['all' => true],
Liip\ImagineBundle\LiipImagineBundle::class => ['all' => true],
Hautelook\AliceBundle\HautelookAliceBundle::class => ['all' => true],
Fidry\AliceDataFixtures\Bridge\Symfony\FidryAliceDataFixturesBundle::class => ['all' => true],
Nelmio\Alice\Bridge\Symfony\NelmioAliceBundle::class => ['all' => true],
];
Please note that HarentiusBlogBundle can provide default configuration for other bundles. To make this work, HarentiusBlogBundle should be registered before other bundles
HarentiusBlogBundle also has default security config. So please make sure it does not conflict with your app config or skip using it
- Include routes:
# config/routes.yaml
blog:
resource: "@HarentiusBlogBundle/Resources/config/routing.yml"
prefix: /
- Include default configs: Note: this step can be skipped if you decide to configure bundles (i.e. DoctrineBundle, SecurityBundle, etc) yourself
# config/packages/harentius_blog.yaml
imports:
- { resource: '@HarentiusBlogBundle/Resources/config/config.yml' }
Configuration
Config reference:
harentius_blog:
# Localizations to be used by blog
locales: ['en', 'uk']
primary_locale: 'en'
articles:
# Path where previews stored
image_previews_base_uri: /assets/images/preview/
sidebar:
# ~ - no cache, 0 - unlimited cache
cache_lifetime: 3600
# Max tags number (ordered by max popularity)
tags_limit: 10
# Percent tags size, unlimited variants number (valid values: [50, 100], [25, 50, 75, 100], etc)
tag_sizes: [65, 80, 100]
homepage:
# ~ - no page, feed only or page slug
page_slug: index
# ~ - no feed
feed:
# ~ - all
category: ~
# Last articles number
number: 5
list:
posts_per_page: 20
# For avoiding internal apc cache conflicts if run multiple sites on one server.
cache:
apc_global_prefix: blog
Post Installation/Configuration actions
- Create/Update your DB according to chosen installation type
bin/console doctrine:database:create # If fresh installation
bin/console doctrine:schema:create
- Install assets
bin/console assets:install --symlink
- Load fixtures (optional)
bin/console hautelook:fixtures:load
Additional Resources
https://folkprog.net - example of blog based on this bundle.
https://github.com/harentius/folkprog - git repository with sources of this blog.