2017 © Pedro Pelรกez
 

library mvc

wenprise mvc framework.

image

wenprise/mvc

wenprise mvc framework.

  • Tuesday, July 31, 2018
  • by iwillhappy1314
  • Repository
  • 1 Watchers
  • 0 Stars
  • 66 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 17 Versions
  • 25 % Grown

The README.md

Wenprise MVC framework for WrodPress

Add a MVC framework to wordpress, based on Themosis Framework ., (*1)

Usage

User composer to install

In your theme directory, (*2)

$ composer require wenprise/mvc

add psr-4 autoload rule to composer.json, (*3)

"autoload": {
    "psr-4": {
      "Theme\\": "app/"
    }
},

the run the dump-autoload command, (*4)

$ composer dump-autoload

Include the autoload and frame init fie to your theme`s functions.php file.

require_once( get_theme_file_path( 'vendor/autoload.php' ) );
require_once( get_theme_file_path( 'app/init.php' ) );

The directory structure

The structure of theme/app directory., (*5)

โ”œโ”€โ”€ Controllers
โ”‚ย ย  โ”œโ”€โ”€ AccountController.php
โ”œโ”€โ”€ Models
โ”‚ย ย  โ”œโ”€โ”€ Order.php
โ”œโ”€โ”€ Providers
โ”‚ย ย  โ””โ”€โ”€ RoutingService.php
โ”œโ”€โ”€ init.php
โ””โ”€โ”€ routes.php

Boot the framework in theme

the code in init.php, (*6)

defined( 'DS' ) ? DS : define( 'DS', DIRECTORY_SEPARATOR );


if ( function_exists( 'container' ) ) {

    /*
     * get the container
     */
    $theme = container();

    /*
     * register theme view path
     * where the blade template files placed
     */
    $theme[ 'view.finder' ]->addLocation( get_theme_file_path( 'views' ) );

    $aliases = [];

    /*
     * theme class alias
     */
    if ( ! empty( $aliases ) && is_array( $aliases ) ) {
        foreach ( $aliases as $alias => $fullname ) {
            class_alias( $fullname, $alias );
        }
    }

    /**
     * resiter theme service providers
     */
    $providers = [
        Theme\Providers\RoutingService::class,
    ];

    foreach ( $providers as $provider ) {
        $theme->register( $provider );
    }

}

Routing Service

the code in RoutingService.php, (*7)

namespace Theme\Providers;

use Wenprise\Facades\Route;
use Wenprise\Foundation\ServiceProvider;

class RoutingService extends ServiceProvider {
    public function register() {
        Route::group( [
            'namespace' => 'Theme\Controllers',
        ], function () {
            require get_theme_file_path( 'app/routes.php' );
        } );
    }
}

Routers

the code in routes.php, (*8)

Route::prefix( 'account' )->group( function () {
    Route::match( [ 'get', 'post' ], 'register', 'AccountController@register' );
} );

Controller

Sampel Controller, (*9)

namespace Theme\Controllers;

use Wenprise\Route\BaseController;

class AccountController extends BaseController {

    /**
     * User register controller
     * @return string
     */
    public function register() {

    }

}

Models

See: Wenprise Eloquent, (*10)

Views

See https://laravel.com/docs/5.5/blade or https://twig.symfony.com/, (*11)

The Versions