承接 glavweb/silex-standard 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

glavweb/silex-standard

Composer 安装命令:

composer create-project glavweb/silex-standard

包简介

The "Silex Standard Edition".

README 文档

README

This is set of gulp tasks and watchers for converting PSD to HTML using Twig template engine (based on Silex Framework).

Goal:

The main goal of this build is creating the fastest HTML integration with Symfony. Decrease time for replacing and editing templates by means of using Symfony methodology, Twig template engine and gorgeous Gulp bundler.

Installation

  1. Creating a Silex Application

You can use Composer to ease the creation of a new project:

$ composer create-project glavweb/silex-standard path/to/install "~0.1"

Composer will create a new Silex project under the path/to/install directory.

  1. Configure the project

You need create parameter.php file. For this you can clone parameter.php.dist file to parameter.php and change parameter host_url to your site host:

$parameters['host_url'] = 'http://YOUR_SITE_HOST.com';
  1. Install node modules:
npm install
  1. Install bower

If bower not installed previously, run command:

npm install -g bower

Install dependent libraries:

bower install
  1. Install Gulp

If Gulp not installed previously, run command:

npm install -g gulp
  1. Run Gulp

run command:

gulp 

Project structure:

There are three main directories: web, app and src. Description of each one is below

Web:

Web folder contains all project static files and entrypoints for the project:

  • web\app.php - production entrypoint for the project;
  • web\app_dev.php - developer entrypoint for the project;
  • web\components - bower components;
  • web\css - css files;
  • web\js - js files;
  • web\images|web\videos - all video and images assets;
  • web\fonts - all fonts;
  • web\plugins - all custom vendors;
  • web\static\*.html - html compiled files.

App:

Markup folder contains configuration and templates:

  • app\Application.php - front controller for the project;
  • app\config\config.php – main configuration for the project;
  • app\config\config_dev.php – developer configuration for the project;
  • app\config\config_prod.php – production configuration for the project;
  • app\config\parameter.php.dist – dummy parameters (need only for copy);
  • app\config\parameter.php – parameters for the project;
  • app\Resources\fixtures – keeps fixture files;
  • app\Resources\less - keeps less resources;
  • app\Resources\views - keeps templates files;

Src:

The src folder contains scripts for extend logic the project.

  • src\Controller - keep controller files (configurations for views).
  • src\Twig - keep the Twig Extension file for extend template`s logic.

Is uses popular programming pattern - Model-View-Controller.

Fixtures - contains dummy for project's instances.

For example: Menu instance looks like:

$fixture['menu'] = [
    'class' => [
        'fields' => [
            ['name' => 'name', 'type' => 'string'],
            ['name' => 'link', 'type' => 'string'],
        ]
    ],
    'instances' => [
        [
            'name' => 'Main',
            'link' =>  '#home'
        ],
        ...
    ]
];

Views - contains html templates.

Base of html templates is Twig template engine uses at Symfony by default. Full documentation is here Twig/doc

We create base template per each page where are header and footer as usual. We call it base.html.twig (.html postfix isn't necessary but it needs for projects, which will be integrated with Symfony). Base template is at root directory of each templates and is bone for following pages

Per common blocks which are used on several pages we create at app/Resources/views/common folder. Inserting of such blocks by means of include tag. For example:

{% include 'common/navbar.html.twig' %}

Important: folders path is determined regarding root template folder app/Resources/views.

{% include 'common/test.html.twig' %}

All external files includes by asset function, which generates right paths to resources

<link rel="stylesheet" href="{{ asset('components/bootstrap/dist/css/bootstrap.min.css') }}">
<script src="{{ asset('components/jquery/dist/jquery.min.js') }}"></script>
<script src="{{ asset('components/bootstrap/dist/js/bootstrap.min.js') }}"></script>

Controllers - contains configuration for templates.

For example Person action in Default controller:

/**
 * Person show page
 */
$controllers->get('/person', function (Application $app) {
    return $app['twig']->render('pages/person.html.twig', [
        'name' => 'John Doe',
        'phone' => '+7 123 123 1234'
    ]);
})->bind('person_show');

'/person' - define URL for page. 'person_show' - method "bind" allow get page url by action name. For example:

<a href="{{ path('person_show') }}">Person show page</a>

'pages/person.html.twig' - here define path to twig template.

Also you can pass some variables for your twig template:

'name' => 'John Doe',
'phone' => '+7 123 123 1234'

Gulp:

Gulp contains all bundlers tasks and watchers. All tasks are easy to understand:

  • css - all task for compiling CSS;
  • html - all task for compiling HTML templates;
  • generator - all task for generating code;
  • images - all task for compiling images;
  • js - all task for compiling javascript ;
  • serve - all task for compiling for developing mode.

Generate static HTML pages:

You can generate static HTML pages, for this you need run command:

php bin/console generate:static-pages

will be generated pages in folder web/static.

统计信息

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

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: CSS

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-02-26

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固