Mamuzblog

Provides blog feature for ZF2 with Doctrine

Download as .zip Download as .tar.gz View on GitHub

MamuzBlog

Build Status Coverage Status Scrutinizer Code Quality SensioLabsInsight HHVM Status Dependency Status

Latest Stable Version Latest Unstable Version Total Downloads License

Features

Screenshot
MamuzBlog

Installation

The recommended way to install mamuz/mamuz-blog is through composer by adding dependency to your composer.json:

{
    "require": {
        "mamuz/mamuz-blog": "*"
    }
}

After that run composer update and enable this module for ZF2 by adding MamuzBlog to modules in ./config/application.config.php:

// ...
    'modules' => array(
        'MamuzBlog',
    ),

This module is based on DoctrineORMModule and be sure that you have already configured database connection.

Create database tables with command line tool provided by DoctrineORMModule:

./vendor/bin/doctrine-module orm:schema-tool:update

Configuration

Post identity encryption for hyperlinks

Encryption is supported by hashids/hashids and have to be configured by copy ./vendor/mamuz-blog/config/crypt.local.php.dist to ./config/autoload/crypt.local.php. Be sure that this file is not under version control. The only thing you have to do is changing salt value to any complex string.

Default configuration

Besides configuration for identity encryption this module is usable out of the box, but you can overwrite default configuration by adding a config file in ./config/autoload directory. For default configuration see module.config.php

Pagination

Listings of posts and tags includes a pagination feature, which seperates views to a default range. Default range is overwritable by adding a config file in ./config/autoload directory.

Posts

Post listing is provided by route blogPublishedPosts and default range is two items.

Tags

Tag listing is provided by route blogTags and default range is 10 items.

Creating a new Post

Create an entity in MamuzBlogPost repository and tag it in related MamuzBlogTag.

Admin Module to provide an interface for that is planned.

Workflow

If routing to a dedicated post found by published flag and encrypted identity is successful, post content will be responsed in a new view model rendered as markdown, otherwise it will set a 404 status code to the http response object.

Events

For the sake of simplicity Event is used for FQN MamuzBlog\EventManager\Event.

The following events are triggered by Event::IDENTIFIER mamuz-blog:

Name Constant Description
createPaginator.pre Event::PRE_PAGINATION_CREATE Before pagination creation for posts/tags listing
createPaginator.post Event::POST_PAGINATION_CREATE After pagination creation for posts/tags listing
findPublishedPost.pre Event::PRE_FIND_PUBLISHED_POST Before dedicated post retrieval
findPublishedPost.post Event::POST_FIND_PUBLISHED_POST After dedicated post retrieval

Terminology