PHPackages                             codebjorn/loki - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. codebjorn/loki

ActiveWp-theme

codebjorn/loki
==============

WP Theme Loki

0.1.0(4y ago)13MITPHP

Since May 30Pushed 4y ago1 watchersCompare

[ Source](https://github.com/codebjorn/loki)[ Packagist](https://packagist.org/packages/codebjorn/loki)[ RSS](/packages/codebjorn-loki/feed)WikiDiscussions main Synced 4d ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

[![](https://camo.githubusercontent.com/bbeebd165c9b2db7587f3423129ad2ca5dcb0d81bbe0d406aed5de4b20275c91/68747470733a2f2f692e696d6775722e636f6d2f6a754e70454a4f2e706e67)](https://camo.githubusercontent.com/bbeebd165c9b2db7587f3423129ad2ca5dcb0d81bbe0d406aed5de4b20275c91/68747470733a2f2f692e696d6775722e636f6d2f6a754e70454a4f2e706e67)

Loki, WordPress Theme Boilerplate
=================================

[](#loki-wordpress-theme-boilerplate)

[![GitHub release](https://camo.githubusercontent.com/97fbd90f268e8ddd5543e56549951c6373e5025a117180832292a9ad137cb3d8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f636f6465626a6f726e2f6c6f6b693f696e636c7564655f70726572656c6561736573)](https://github.com/codebjorn/loki/releases)[![Generic badge](https://camo.githubusercontent.com/52ad996b081d948d6585b4cb6efabd2c9d3daf5d07fadc7c3738021f01879222/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53746162696c6974792d416c7068612d6f72616e67652e737667)](https://shields.io/)

Loki is WordPress Theme Boilerplate using as a base [Mjolnir](https://github.com/codebjorn/mjolnir) Framework

If you think this approach is not working, please open an issue and let's discuss :)

Pre-Requirements
----------------

[](#pre-requirements)

Before we proceed further, I suggest you to read documentation for:

1. [Mjolnir](https://github.com/codebjorn/mjolnir) Framework.
2. [Laravel Blade](https://laravel.com/docs/6.x/blade)
3. [Laravel Mix](https://laravel-mix.com/)

Requirements
------------

[](#requirements)

Requirements for this boilerplate are:

- PHP 7.1+
- Composer

Installation
------------

[](#installation)

You can install framework via composer:

```
composer create-project codebjorn/loki
```

Structure
---------

[](#structure)

Structure of boilerplate is:

```
|-- app                   // Folder where is stored all Facades,Services,Providers
|   |--Facades            // Folder that stores all facades used to get utilities & services from container
|   |--Providers          // Folder that stores all your providers
|   |--App.php            // Container file
|   |--Helpers.php        // File that store all functions need it for project
|-- assets                // Folder where all builded assets are stored
|-- blocks                // Folder where are stored all Gutenberg blocks
|   |--      // Folder with block
|       |-- components    // Folder where are stored all js components for Gutenberg
|       |-- data          // Folder where are stored json files such as attributes
|       |-- view          // Folder where is stored blade files for render
|       |-- index.jsx     // Block configuration file
|   |-- blocks.js         // File where is imported all blocks
|   |-- blocks.php        // File where are registered blocks using Block Facade
|-- config                // Folder where are stored configurations
|-- hooks                 // Folder where is stored all hooks
|   |-- actions.php       // File where are created new action hooks using Action Facade
|   |-- filters.php       // File where are created new filter hooks using Filter Facade
|-- resources             // Folder that stores all js,scss,views elements of theme
|   |-- js                // Folder for js of theme
|   |-- scss              // Folder for scss of theme
|   |-- views             // Folder for blade templates
|-- templates             // Folder where default wordpress templates are stored
|-- vendor                // Composer packages folder
|-- functions.php         // Default WP Functions.php
|-- webpack.mix.js        //Laravel Mix configuration file

```

How all work
------------

[](#how-all-work)

#### Add service into hook

[](#add-service-into-hook)

1. Create a new namespace in `app` folder and add new php service class
2. Resolve this service using Service Provider in `app/Providers` folder, you can add it to `AppServiceProvider.php` or create a new provider and add it to `config/app.php` to load. More info about [service providers](https://container.thephpleague.com/3.x/service-providers/)
3. After resolving a service you can [inject](https://container.thephpleague.com/3.x/dependency-injection/) it in another service or add it into hook in `hooks` folder, for example action hook:

```
Action::add('wp_enqueue_scripts', [\Namespace\Setup\Enqueues::class, 'front']);
Action::add('admin_enqueue_scripts', [\Namespace\Setup\Enqueues::class, 'admin']);
```

#### Work with WordPress templates

[](#work-with-wordpress-templates)

By default, all WordPress templates are stored in `templates` folder, you can change folder or disable this feature in `config/theme.php`.

To use templates and laravel blade engine we can use templates as kind of controller that will store all data that we need but render will make template engine, for example:

1. Let's say we want to create/update template `single.php`, we create a new file `templates/single.php`

```
