PHPackages                             cba85/wp-icarus-framework - 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. [Framework](/categories/framework)
4. /
5. cba85/wp-icarus-framework

ActiveLibrary[Framework](/categories/framework)

cba85/wp-icarus-framework
=========================

Wordpress Icarus plugin framework boilerplate

1.0.2(5y ago)118MITPHP

Since Apr 22Pushed 5y ago1 watchersCompare

[ Source](https://github.com/cba85/wp-icarus-framework)[ Packagist](https://packagist.org/packages/cba85/wp-icarus-framework)[ RSS](/packages/cba85-wp-icarus-framework/feed)WikiDiscussions master Synced yesterday

READMEChangelog (3)Dependencies (1)Versions (4)Used By (0)

WP Icarus framework
===================

[](#wp-icarus-framework)

Wordpress Icarus plugin framework.

Install
-------

[](#install)

Via Composer

```
$ composer require cba85/wp-icarus-framework

```

Usage
-----

[](#usage)

### Bootstrap

[](#bootstrap)

```
use Icarus\Plugin;

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

new Plugin();
```

### Facades

[](#facades)

You can use components as objects:

```
use Icarus\Assets\Script;

$script = new Script(__DIR__ . '/js');
$script->add('style1-name', 'style.css', [], false, 'all')
    ->add('style2-name', 'style2.css', [], false, 'all')
    ->save();
```

You can also use some components as facades:

```
 Hook::register('activation', __FILE__, function () {
        return new HookController;
    });
```

Components
----------

[](#components)

### Config

[](#config)

```
use Icarus\Config\Config;

$config = new Config;

// Bind a configuration file
$config->bind(['test' => require __DIR__ . '/config/test.php']);

// Get a key from a configuration file
$config->get('test')['key']; // Value
```

Config file example:

```
return [
    'name' => 'WP Icarus plugin',
    'view' => __DIR__ . '/../resources/views/',
    'styles' =>  __DIR__ . '/../public/css/',
    'scripts' => __DIR__ . '/../public/js/',
];
```

### View

[](#view)

Your view files name must end with `.view.php` (e.g. `filename.view.php`);

```
use Icarus\View\View;

$view = new View;
$view->setPath(__DIR__ . '/views/');

$view->render('filename');
$view->render('filename', ['key' => 'value']); // With data
```

### Style

[](#style)

```
use Icarus\Assets\Style;

(new Style)->setPath(Config::get('plugin')['styles'])
    ->add('style1-name', 'style.css', [], false, 'all')
    ->add('style2-name', 'style2.css', [], false, 'all')
    ->save('wp_enqueue_style');
```

### Script

[](#script)

```
use Icarus\Assets\Script;

(new Script)->setPath(Config::get('plugin')['scripts'])
        ->add('scripts', 'scripts.js', [], false, true)
        ->add('admin', 'admin.js', [], false, true)
        ->save('wp_enqueue_script');
```

### Menu

[](#menu)

#### Facade

[](#facade)

```
Menu::create(function () {

    Menu::addPage('page', 'menu', 'capability', 'slug', function () {
        return (new \Icarus\Tests\Mocks\AdminController)->index();
    });

    Menu::addSubPage('parent', 'page', 'menu', 'capability', 'slug', function () {
        return (new \Icarus\Tests\Mocks\AdminController)->index();
    });

});
```

### Session

[](#session)

#### Facade

[](#facade-1)

```
Session::set('success', "Success test");
echo Session::has('success'); // True
echo Session::get('success'); // Success test
Session::remove('success');
Session::all();
Session::flush();
```

### Notice

[](#notice)

#### Facade

[](#facade-2)

```
// Create a notice message
Notice::setKey("icarus-framework")->create('success', "Success test");

// Display a notice message
Notice::display();
```

### Hook

[](#hook)

#### Facade

[](#facade-3)

```
Hook::register('activation', __FILE__, function () {
    new ActivationHook;
})->register('deactivation', __FILE__, function () {
    new DeactivationHook;
});
```

### Admin

[](#admin)

#### Facade

[](#facade-4)

```
Admin::action('process_test', function () {
    return $this->save();
});
```

Models
------

[](#models)

### Table

[](#table)

```
