Create your own site with TYPO3 Flow

By Sivaprasad S on September 29, 2014

Flow3 a php based framework ,through which web-developers can create excellent web solutions.This blog is about,creating a website in flow3 and how templating can be done with the help of fluid.

Installing FLOW3

Setting up TYPO3 Flow is pretty straight-forward.
See below for System requirements.

A web server ( Apache with the mod_rewrite module enabled )
PHP 5.3.2 or > (Check your phpinfo() to know your php version)
A database supported by Doctrine DBAL, such as MySQL Command line access

The following command will clone the latest version, include development dependencies and keep git metadata for future use:

php composer.phar create-project --dev --keep-vcs typo3/flow-base-distribution PROJECT_NAME

After that,Kindly give proper perimission for all the files and folders.

./flow core:setfilepermissions username webservername group-name

Above command will give appropriate permission for all folders and files. For further informations kindly run the command ./flow help in terminal.

Once the clonning of the website is done , add new virtual host by modifying the httpd-vhost.conf file.

For creating a new extension/Package

flow.bat kickstart:actioncontroller --generate-actions --generate-related Acme.Demo CoffeeBean (In windows)

./flow kickstart:actioncontroller --generate-actions --generate-related Acme.Demo CoffeeBean (In Linux)

Database Setup

Create an empty database and set up a user with sufficient access rights

Copy the file Configuration/Settings.yaml.example to Configuration/Settings.yaml.

Open and adjust the file to your needs – for a common MySQL setup, it would look similar to this:


TYPO3:
  Flow:
    persistence:
    backendOptions:
        driver : 'pdo_mysql'
        dbname : 'databasename' # adjust to your database name
        user : 'username' # adjust to your database user
        password: 'password' # adjust to your database password
        host : 'host' # adjust to your database host

After providing all the necessary informations related your database in Settings.yaml file, run ./flow doctrine:migrate in terminal .

Templating for website

For creating a theme/template for a website there is a function in Flow3 called “setLayoutPathAndFilename” that can be triggered in the ”initializeView” function. So we should built a base controller
eg: ThemeController and any new controller should extend this newly created base class.


  class ThemeController extends \TYPO3\FLOW3\MVC\Controller\ActionController {
    public function initializeView(\TYPO3\FLOW3\MVC\View\ViewInterface $view) {
      $view->setLayoutPathAndFilename(“PATH_TO_TEMPLATE”);
  }
}

PATH_TO_TEMPLATE it should be the path to an existing template file.
Eg ../PKGS/Application/PKG.NAME/Resources/Private/Layouts/file.html
And in the newly added Layout file add

.

Routing In Flow3 framework

Change the Routes.yaml file add your routes in that file .

-
name: 'Welcome Screen' // It is not mandatory to add name
uriPattern:'index/index'
  defaults:
    '@packages': 'TYPO3.Index'
      '@controller':'coffeebean'
    '@actoion':'index'
    '@format':'html'

To set this package as the index package leave uriPattern as empty. The route becomes active if a requests matches the pattern defined by the uriPattern.

For furthur references please vist :
http://docs.typo3.org/flow/TYPO3FlowDocumentation/Quickstart/Index.html
http://docs.typo3.org/flow/TYPO3FlowDocumentation/TheDefinitiveGuide/Index.html

Leave a Reply

SCROLL TO TOP