Symfony-3-基础教程系列-安装

本节教程主要介绍Composer的基础知识和 Symfony3 的安装,使用 php bin/console server:run 服务器的初步使用

# 安装方法

首先安装全局 composer 

$ curl -sS http://install.phpcomposer.com/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

  

安装Symfony3.0.*

$ composer create-project symfony/framework-standard-edition my_project_name

  

权限 ~/www/Symfony3$

$ rm -rf var/cache/* var/logs/* var/sessions/*
$ HTTPDUSER=`ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
$ sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var
$ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var

  

运行 $ php bin/console server:run

访问:http://localhost:8000

 

#Demo学习

$ sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
$ sudo chmod a+x /usr/local/bin/symfony
$ symfony demo
$ cd symfony_demo
$ php app/console server:run

  

访问 http://localhost:8000  你应该看到如图下所示:

如果你点击 Browse Application 按钮,报 database_driver 错误,你可以选择开启 pdo_sqlite 或者 修改为其它数据库驱动 ( www/symfony_demo/app/config/parameters.yml )

 

# This file is auto-generated during the composer install
parameters:
    database_driver: pdo_sqlite // 或者修改为 pdo_mysql
    database_host: 127.0.0.1
    database_port: 3306
    database_name: symfony_demo
    database_user: root
    database_password: root
    database_path: '%kernel.root_dir%/data/blog.sqlite'
    mailer_transport: smtp
    mailer_host: 127.0.0.1
    mailer_user: null
    mailer_password: null
    locale: en
    secret: secret_value_for_symfony_demo_application

  

 # 开启 pdo_sqlite,ubuntu配置apache支持sqlite数据库

 

安装sqlite模块:
$ sudo apt-get install php5-sqlite

重启apache :
$ sudo service apache2 restart

 

  

sqlite的模块的文件sqlite.so会安装到php5的lib目录,由于之前已经设置好了php的lib目录,这里使用之前的配置就好,之后在/etc/php5/apache2/conf.d/下面增加sqlite.ini,里面写入extension=sqlite.so

(一般来apt-get的时候会自动创建该文件并写入需要的配置,同时会生成pdo_sqlite.ini ,所以之需要在安装后重启 apache2 就大功告成了。) 

windows的配置方式是编辑php.ini,加入extension=sqlite.dll

 


 

#文档

1 Symfony

服务器 Apache/Nginx 配置
 
2 Doctrine
 
Sass/Scss中文说明
 
Bootstrap sass
 
使用说明
1 CSS
header写scss,自动编译成CSS. 建议分成2个文件,common.css和app.css
{% block stylesheets %}
{# uncomment the following lines to compile SCSS assets with Assetic

    {% stylesheets filter="scssphp" output="css/app.css"
        "%kernel.root_dir%/Resources/assets/scss/bootstrap.scss"
        "%kernel.root_dir%/Resources/assets/scss/font-awesome.scss"
        "%kernel.root_dir%/Resources/assets/css/*.css"
        "%kernel.root_dir%/Resources/assets/scss/main.scss"
    %}
        <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
#}

    <link rel="stylesheet" href="{{ asset('css/app.css') }}">
{% endblock %}

  

2 JavaScript
body里写js文件,自动合成一个文件.   建议分成2个文件,common.js和app.js
{% block javascripts %}
{# uncomment the following lines to combine and minimize JavaScript assets with Assetic
    {% javascripts filter="?jsqueeze" output="js/app.js"
        "%kernel.root_dir%/Resources/assets/js/jquery-2.1.4.js"
        "%kernel.root_dir%/Resources/assets/js/moment.min.js"
        "%kernel.root_dir%/Resources/assets/js/bootstrap-3.3.4.js"
        "%kernel.root_dir%/Resources/assets/js/highlight.pack.js"
        "%kernel.root_dir%/Resources/assets/js/bootstrap-datetimepicker.min.js"
        "%kernel.root_dir%/Resources/assets/js/main.js" %}
        <script src="{{ asset_url }}"></script>
    {% endjavascripts %}
#}

    <script src="{{ asset('js/app.js') }}"></script>
{% endblock %}

  

3 从entity文件更新数据库
下面的命令分别是删除数据库, 创建数据库,创建数据库的表格结构, 强制数据库的表格结构更新, 加载测试数据
$ php app/console doctrine:database:drop
$ php app/console doctrine:database:create
$ php app/console doctrine:schema:create
$ php app/console doctrine:schema:update --force
$ php app/console doctrine:fixtures:load

  

4 常见问题着手分析
URL 问题: 查看生成的/app/cache/dev/appDevUrlMatcher.php
Service使用问题: 查看生成的/app/cache/dev/appDevDebugProjectContainer.php
 
5 测试
controller:直接使用dump(), 然后在底部的 web profiler里查看dump标签
twig: 通过 {% dump var1, var2 %} 同controller.  {{ dump(var1,var2) }} 直接在页面上输出
 
posted @ 2016-02-26 14:03  Richard2014  阅读(523)  评论(0)    收藏  举报