Webino™ is brought to you thanks to authors and contributors of following third-party libraries also.

bushbaby/flysystem

Copyright (c) 2014 Bas Kamer

composer

Copyright (c) Nils Adermann, Jordi Boggiano

container-interop/container-interop

Copyright (c) 2013 container-interop

dnoegel/php-xdg-base-dir

Copyright (c) 2014 Daniel Nögel

heroku/heroku-buildpack-php

Copyright (c) 2014 Heroku, Inc.

jakub-onderka/php-console-highlighter

Copyright (c) 2013 Jakub Onderka

league/climate

Copyright (c) 2014 Joe Tannenbaum

league/flysystem

Copyright (c) 2013-2017 Frank de Jonge

league/flysystem-memory

Copyright (c) 2015 Chris Leppanen

mikey179/vfsStream

Copyright (c) 2007-2015, Frank Kleine

nikic/php-parser

Copyright (c) 2011 by Nikita Popov.

psr/container

Copyright (c) 2016 PHP Framework Interoperability Group

psr/http-message

Copyright (c) 2014 PHP Framework Interoperability Group

psr/log

Copyright (c) 2012 PHP Framework Interoperability Group

psy/psysh

Copyright (c) 2012-2017 Justin Hileman

seld/cli-prompt

Copyright (c) 2015 Jordi Boggiano

symfony/console

Copyright (c) 2004-2017 Fabien Potencier

symfony/debug

Copyright (c) 2004-2017 Fabien Potencier

symfony/polyfill-mbstring

Copyright (c) 2014-2016 Fabien Potencier

symfony/var-dumper

Copyright (c) 2014-2017 Fabien Potencier

tracy/tracy

Copyright (c) 2004, 2014 David Grudl (https://davidgrudl.com)

workspace/tpl

Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/)

zendframework/zend-cache

Copyright (c) 2005-2016, Zend Technologies USA, Inc.

zendframework/zend-config

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-console

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-diactoros

Copyright (c) 2015-2016, Zend Technologies USA, Inc.

zendframework/zend-dom

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-escaper

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-eventmanager

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-filter

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-form

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-http

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-hydrator

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-inputfilter

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-json

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-loader

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-log

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-mail

Copyright (c) 2005-2016, Zend Technologies USA, Inc.

zendframework/zend-mime

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-modulemanager

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-mvc

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-psr7bridge

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-servicemanager

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-stdlib

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-uri

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-validator

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

zendframework/zend-version

Copyright (c) 2005-2015, Zend Technologies USA, Inc.

Source Preview
<?php
/**
 * Webino Credits
 * Kudos to all of you
 */

use WebinoAppLib\Event\DispatchEvent;
use 
WebinoAppLib\Event\RouteEvent;
use 
WebinoAppLib\Response\ViewResponse;
use 
WebinoAppLib\Router\DefaultRoute;
use 
WebinoAppLib\Service\Credits;
use 
WebinoAppLib\View\SourcePreviewComponent;
use 
WebinoDomLib\Event\RenderEvent;
use 
WebinoHtmlLib\Html;
use 
WebinoViewLib\Component\AbstractViewComponent;
use 
WebinoViewLib\Component\OnDispatchInterface;
use 
WebinoViewLib\Component\Stylesheet;
use 
WebinoViewLib\Feature\CommonView;
use 
WebinoViewLib\Feature\NodeView;

require 
__DIR__ '/../../vendor/autoload.php';

class 
CreditsComponent extends AbstractViewComponent implements OnDispatchInterface
{
    
/**
     * Vendor dir
     */
    
const DIR '../../../../vendor';

    
/**
     * Credits HTML
     *
     * @var string
     */
    
private $html;

    
/**
     * @param NodeView $node
     */
    
public function configure(NodeView $node)
    {
        
$node
            
->setLocator('credits')
            ->
setRename('div')
            ->
setAddClass('list-group text-center');
    }

    
/**
     * @param DispatchEvent $event
     */
    
public function onDispatch(DispatchEvent $event)
    {
        if (!
is_dir($this::DIR)) {
            return;
        }

        
/** @var Credits $credits */
        
$credits $event->getApp()->get(Credits::class);
        if (!
$credits) {
            return;
        }

        
$html '';
        foreach (
$credits->getCredits($this::DIR) as $item) {

            
$html .= (new Html\Block('0 1'))
                ->
setClass('list-group-item')
                ->
format([
                    new 
Html\Text(new Html\Strong($item[0])),
                    new 
Html\Text($item[1])
                ]);
        }

        
$this->html $html;
    }

    
/**
     * @param RenderEvent $event
     */
    
public function onRender(RenderEvent $event)
    {
        
$event->getNode()->setHtml($this->html);
    }
}

$config Webino::config([

    new 
CommonView([
        new 
Stylesheet\BootstrapV3,
        new 
SourcePreviewComponent(__FILE__),

        (new 
NodeView('content'))
            ->
setLocator('body')
            ->
setHtml('<div class="container"><intro/><credits/><source-preview/></div>'),

        (new 
NodeView('intro'))
            ->
setLocator('intro')
            ->
setRename('div')
            ->
setHtml('<div class="page-header text-center"><h1>Webino Credits</h1><copyright/></div><note/>')
            ->
setView([
                (new 
NodeView('copyright'))
                    ->
setLocator('copyright')
                    ->
setRename('div')
                    ->
setHtml([
                        (new 
Html\Text(':vendor (:link)'))
                            ->
format([
                                
':vendor' => Credits::VENDOR_COPYRIGHT,
                                
':link'   => new Html\Url(Credits::VENDOR_URL),
                            ]),

                        new 
Html\Text(
                            (new 
Html\Html('<strong>Author:</strong> :name (:link)'))
                                ->
format([
                                    
':name' => Credits::AUTHOR_NAME,
                                    
':link' => new Html\Url(Credits::AUTHOR_URL),
                                ])
                        ),
                    ]),

                (new 
NodeView('note'))
                    ->
setLocator('note')
                    ->
setRename('p')
                    ->
setAddClass('alert alert-info text-center')
                    ->
setValue([
                        
'Webino™ is brought to you thanks to authors and contributors ',
                        
'of following third-party libraries also.',
                    ])
            ]),

        new 
CreditsComponent,
    ]),
]);

$app Webino::application($config)->bootstrap();

$app->bind(DefaultRoute::class, function (RouteEvent $event) {
    
$event->setResponse(new ViewResponse);
});

$app->dispatch();