webiik/staticpage

The StaticPage allows you to generate static pages.

1.1 2020-01-27 16:19 UTC

This package is auto-updated.

Last update: 2024-04-28 02:22:00 UTC


README

68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f77656269696b2f77656269696b2e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646570656e64656e636965732d302d627269676874677265656e2e737667

StaticPage

The StaticPage allows generating static content from almost any PHP app on the fly. It is designed to be used inside any route controller and to serve static files using the NGiNX or another web server.

Installation

composer require webiik/staticpage

How To Steps

To make StaticPage work, follow these two steps:

  1. Update your route controller(s):

    Let's say you have the method run() you use as the route controller.

    public function run(): void
    {
        // Page URI
        $uri = '/foo/bar/';
        
        // Page template
        $page = '<h1>Meow World!</h1>';
    
        // Save static file the web server will try to serve with every next request  
        $staticPage = new Webiik\StaticPage\StaticPage();
        $staticPage->save($page, $uri);
    
        // Show dynamic page when the server didn't serve the static page  
        echo $page;
    }
  2. Update your web server configuration (NGiNX example):

  • Add /_site${uri} /_site${uri}index.html to the beginning of your try_files directive in the main location. It tells NGiNX to try to serve static files at first. Eg:
    location / {
        try_files /_site${uri} /_site${uri}index.html $uri $uri/ /index.php?$query_string;
    }
  • Check the configuration and restart the server.

Configuration

setDir

setDir(string $dir): void

setDir() sets a relative path to where all generated static files will be stored. Default path is ./_site.

$staticPage->setDir('./_site');

Generating

save

save(string $data, string $uri, string $file = 'index.html'): void

save() creates directory structure according to $uri and inside it saves $file with the content of $data.

$staticPage->save('<h1>Meow World!</h1>', '/foo/bar/');

Deleting

delete

⚠️ Be very careful when using this method.

delete(bool $test = true): void

delete() deletes content of $dir. When $test mode is set to true, it only printouts files to be deleted but doesn't delete them.

$staticPage->delete();

This method can be called from CLI. It accept two arguments $dir and $test.

php StaticPage.php /absolute/path/to/static/_site true

Resources