xdire/dude-pmvc

友好的框架。Duuudeeee!

0.1.7.2 2016-03-25 03:28 UTC

This package is not auto-updated.

Last update: 2024-09-20 19:08:54 UTC


README

PHP 微型框架 (5.5+ / 7+)

安装:通过 Composer

  1. https://composer.php.ac.cn/download/将 Composer 安装到目标文件夹

  2. 执行以下命令(假设您已将 Composer 作为 Phar 文件安装到文件夹中)

php composer.phar create-project xdire/dude-pmvc myapp

myapp 文件夹将在您的目标文件夹中创建

mv composer.phar myapp
cd myapp

执行 composer update

php composer.phar update

完成

安装:链接到 Web 服务器

应用程序文件夹结构如下所示

myapp
--|
  |- App
  |- Drivers
  |- public
  |- vendor

在您的 Web 服务器中创建新的虚拟主机

将虚拟主机根目录指向 /somepath/myapp/public

Apache 虚拟主机指令
<Directory "/somepath/myapp/public">
    AllowOverride None
    Require all granted
    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php
    </IfModule>
</Directory>
<VirtualHost *:80>
   ServerName someserver.domain
   DocumentRoot "/somepath/myapp/public"
</VirtualHost>
Nginx - 服务器指令
server {
    listen	 80;
    server_name  localhost;

	location / {
                if (!-e $request_filename) {
                    rewrite (.*)$ /index.php last;
                }
        }

	root   /somepath/myapp/public;
    index  index.php index.html index.htm;

    location ~ \.php$ {
        fastcgi_param   APPENVIRONMENT  prod;
        fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME /somepath/myapp/public$fastcgi_script_name;
        include fastcgi_params;
    }

}

安装后

简单方法

/AppFolder/App/route.php 中定义一些路由

App::route(ROUTE_ALL,'/',function ($req,$resp) {
    echo "Hello world";
});

然后访问您的服务器 http://your_server/

复杂方法

1 在 /App/Controller 文件夹中定义一些控制器
namespace App\Controller;
use Xdire\Dude\Core\Face\RoutingController;
use Xdire\Dude\Server\Request;
use Xdire\Dude\Server\Response;

class ExampleController implements RoutingController
{
  public function acceptRoute(Request $request, Response $response)
  {
  	$response->send(200,"<h2>Hey Dude!</h2>Route was accepted");
  }
}
2 在 /AppFolder/App/route.php 中定义控制器路由

各种请求类型的路由示例

App::route(ROUTE_ALL,'/',function ($req,$resp) {
    App::routeController('ExampleController@testRoute',$req,$resp);
});

仅支持 GET 请求的路由示例

App::route(ROUTE_GET,'/',function ($req,$resp) {
    App::routeController('ExampleController@testRoute',$req,$resp);
});

仅支持 POST 请求的路由示例

App::route(ROUTE_POST,'/',function ($req,$resp) {
    App::routeController('ExampleController@testRoute',$req,$resp);
});

支持的请求类型

ROUTE_ALL
ROUTE_GET
ROUTE_POST
ROUTE_UPD
ROUTE_DEL
ROUTE_PUT
ROUTE_OPT
3 中间件支持
4 CORS 中间件支持