artful / polymer
Polymer是一个灵活并且可自由组合的PHP框架,基于slim+doctrine+twig
Installs: 238
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 1
pkg:composer/artful/polymer
Requires
- php: >=7.4
- ext-exif: *
- ext-pdo: *
- ext-simplexml: *
- beberlei/doctrineextensions: >=1
- cerbero/dto: >=2
- doctrine/annotations: >=1
- doctrine/inflector: >=1
- doctrine/migrations: >=3
- doctrine/orm: >=2
- gedmo/doctrine-extensions: >=3
- goaop/framework: >=3.0.0
- hassankhan/config: >=2
- monolog/monolog: >=2
- peppeocchi/php-cron-scheduler: >=4
- php-amqplib/php-amqplib: >=3
- php-di/php-di: >=6
- php-di/slim-bridge: >=3
- slim/csrf: >=1
- slim/flash: >=0.4
- slim/psr7: 1.4
- slim/slim: >=4
- slim/twig-view: >=3
- symfony/expression-language: >=5
- symfony/property-access: >=5
- symfony/property-info: >=5
- symfony/serializer: >=5
- symfony/validator: >=5
- tuupola/cors-middleware: >=1
- tuupola/slim-jwt-auth: >=3
Requires (Dev)
This package is not auto-updated.
Last update: 2025-10-18 18:16:19 UTC
README
Polymer是一个基于Slim、Doctrine、Twig的MVC框架!设计上只是将其定位于一个'胶水型'的框架, 其本身并没有对Doctrine、Slim、Twig进行任何的封装!只是将这三者进行了整合!
安装
1、使用Composer进行安装,在项目路径下新建composer.json,内容如下:
{
  "require": {
    "artful/polymer": "dev-master"
  },
  "autoload": {
    "psr-4": {
      "CMS\\": "app\\CMS\\"
    }
  },
  "repositories": {
    "packagist": {
      "type": "composer",
      "url": "https://packagist.phpcomposer.com"
    }
  }
}
使用compsoer install 或者使用 php composer.phar install进行依赖包安装!
2、在项目路径下新建app、public_html文件夹,这里将用于项目功能的开发!
3、在app目录下新建CMS文件夹,在public_html下新建cms的文件夹!
4、新建index.php文件,内容如下:
date_default_timezone_set('Asia/Shanghai');
define('ROOT_PATH', dirname(dirname(__DIR__)));
define('APP_NAME', 'CMS');
define('TEMPLATE_PATH', ROOT_PATH . '/app/' . APP_NAME . '/Templates/');
define('APP_PATH', ROOT_PATH . '/app/' . APP_NAME . '/');
require ROOT_PATH . '/vendor/autoload.php';
defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'development');
$app = new \Polymer\Boot\Application();
$app->start();
将其保存在public_html\cms文件夹中!
5、服务器配置rewrite规则
5.1、Nginx的nginx.conf中新增:
server {
    listen 80;
    root  项目路径\public_html\cms;
    index index.html index.php;
    server_name polymer.cms.com;
    if (-f $request_filename/index.php){
        rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
        rewrite (.*) /index.php;
    }
    location / {
        try_files $uri $uri/ =404;
    }
    location ~ \.php$ {
    #   include snippets/fastcgi-php.conf;
    #
    #   # With php5-cgi alone:
        fastcgi_pass 127.0.0.1:9000;
    #   # With php5-fpm:
    #   fastcgi_pass unix:/var/run/php5-fpm.sock;
        include fastcgi_params;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
5.2、Apache的.htaccess内容如下:
RewriteEngine On
<IfModule mod_rewrite.c> 
	RewriteEngine on
	RewriteCond %{REQUEST_FILENAME} !-d 
	RewriteCond %{REQUEST_FILENAME} !-f 
	RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>
6、控制器:
新建Home.php,内容如下:
<?php
namespace CMS\controller;
use Polymer\Controller\Controller;
use Slim\Http\Request;
use Slim\Http\Response;
class Home extends Controller
{
    public function index(Request $request, Response $response, $args)
    {
        return $this->withJson(['data' => 'data']);
    }
}
将其保存在app\CMS\Controller里面.
7、路由配置:
新建home_router.php文件,内容如下:
<?php
$app->map(['GET', 'POST'], '/', APP_NAME . '\\Controller\\Home:index')->setName(APP_NAME . '.home.index');
将其保存在app\CMS\Routers里面!
8、在浏览器里输入服务器配置的虚拟域名,例如:http://polymer.cms.com, 将显示如下内容:
{'data':'data'}
9、参考PoCMS项目,该项目是基于Polymer框架开发!