wisembly/silexcms 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

wisembly/silexcms

Composer 安装命令:

composer require wisembly/silexcms

包简介

Ultra lightweight CMS based on top of Silex

README 文档

README

About

This project aims to provide a minimal toolset helping to create corporate websites. Using Silex as primary framework, it includes multiple shorthand classes.

Version

0.1.0

Examples

We use SilexCMS for our coroporate website. You could see it live at wisembly.com and have a look to github.com/wisembly/wisembly

Documentation

Pages

There is two kind of web pages : statics and dynamics.

Static pages does not rely on anything else than their templates. Dynamic ones take parameters in their urls, fetch a table, then render the specified template, storing the resulting objects in an accessible variable.

Static Page

$app->register(new SilexCMS\Page\StaticPage('/', 'home.html.twig'));

Dynamic Page

$app->register(new SilexCMS\Page\DynamicPage('/product/{slug}', 'product.html.twig'));
{% if app.set not none %}
    Our product is called {{ app.set.name }} :)
{% else %}
    Product not found :(
{% endif %}

DataSets

Datasets are an easy and handy way to retrieve database data directly in your Twig templates. First, register your available DataSets for your application:

$app->register(new DataSet('twig_name', 'table_name'));
$app->register(new DataSet('users', 'user'));

Then, use them in your Twig templates:

{# Tell in your template that you will need users DataSet loaded in app #}
{% bloc users %}{% endbloc %}

{# Then use it freely in your template in app var #}
First user name: {{ app.users[0].name }}

Users emails:
{% for user in app.users %}
  email: {{ user.email }}
{% endfor %}

KeyValueSets

KeyValueSets are an easy and handy way to retrieve from your database key => values sets in your Twig templates. They work like DataSets above, but allows to access values differently in your templates.

$app->register(new DataSet('twig_name', 'table_name', 'key_name'));
$app->register(new DataSet('messages', 'messages', 'key'));

For the following set:

| key | value |
| foo | bar   |
| bar | baz   |

In your template you could then use:

{% bloc messages %}{% endbloc %}

{# will output "bar" #}
foo value is: {{ app.messages.foo }}

Foreign Twig extension

SilexCMS provides a Twig Extension to retrieve easily a particular object by id reference inside a DataSet

First, load Foreign Key Extension

$app['twig']->addExtension(new \SilexCMS\Twig\Extension\ForeignKeyExtension($app));

Then, use it that way in your Twig Templates:

{% block books %}{% endblock %}
{% block categories %}{% endblock %}
{% set category = foreign(app.categories, app.books[0].category_id) %}
The 1rst book category is: {{ category.name }}

Security

The security classes give a very simple way to identifying some users.

When instanciating a Firewall, you will only have to provide a name and an array containing your users authentification infos (where the key will be their usernames and values are plain text passwords). A logger instance will be automagically created in the app[name] variable.

From then, you can use this logger to check current user state or change it.

Manual example

$app->register(new SilexCMS\Security\Firewall('main', array('user' => 'pass')));

var_dump($app['main']->getUsername()); // null
$app['main']->bindUsername('user');
var_dump($app['main']->getUsername()); // "user"

Request example

You can also bind requests if they have at least two parameters : _username and _password.

startup.php
$app->register(new SilexCMS\Security\Firewall('security', array('user' => 'pass')));

$app->register(new SilexCMS\Page\StaticPage('/login', 'login.html.twig'));
$app->register(new SilexCMS\Page\StaticPage('/login/success', 'login/success.html.twig'));
$app->register(new SilexCMS\Page\StaticPage('/login/failure', 'login/failure.html.twig'));

$app->post('/post', function (Application $app, Request $req) {
    $security = $app['security'];

    if ($security->bindSession()->getUserName() || $security->bindRequest($req)->getUserName()) {
        return $app->redirect('login/success');
    } else {
        return $app->redirect('login/failure');
    }
});
login.html.twig
<form action="/login" method="post">
    <input type="text" name="_password" /><br />
    <input type="password" name="_password" /><br />
    <input type="submit" />
</form>

License

SilexCMS is licensed under the MIT license.

统计信息

  • 总下载量: 100
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 23
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 23
  • Watchers: 24
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2012-09-02

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固