Skip to content
This repository has been archived by the owner on Mar 19, 2024. It is now read-only.

fernet-ws/fernet

Repository files navigation

Fernet

Latest Stable Version Build Status Coverage Status Documentation Status

A component based PHP Framework.

Read the full documentation.

Set up

To install use composer create project command:

composer create-project fernet/fernet /path/to/app

You can use the php built in server to run the app:

php -S 127.0.0.1:14567 -t public

Then go to 127.0.0.1:14567.

Component

Fernet component are inspired by React component. They are a PHP class with a __toString method that returns the HTML the component will render. The class needs to be created in the src/Component/ folder. The namespace should be App\Component. Let's create a simple component that said Hi.

src/Component/Hello.php

<?php declare(strict_types=1);
namespace App\Component;

class Hello
{
    public string $name;

    public function __toString(): string
    {
        return "<p>Hi {$this->name}!</p>";
    }
}

To use this new component go to the file src/Component/App.php and use it like a custom HTML tag.

  // There are more code here, let's focus only on the toString method
  public function __toString(): string
  {
    \ob_start(); ?>
    <html lang="en">
        <body>
            <p>Check out this very original example</p>
            <Hello name="World" />
        </body>
    </html><?php    
    return \ob_get_clean();
  } 

The functions ob_start and ob_get_clean are used to get the printed code. We used this trick when we have a lot of HTML to render. Like many other things used in Fernet this is PHP native. The rest of course is old plain HTML.