说明:本篇学习笔记是学习 http://www.chrisyue.com/symfony-in-action-day-1.html 记录的,作者用的是symfony2.7-的版本,本篇用的是symfony3的版本。
准备工作
php5.6,phpstorm2016,
初始化项目
先建一个目录www
在这下面安装symfony installer
$ 为命令提示符,实际不用输入,不再赘述
`$php -r "readfile('http://symfony.com/installer');" > symfony.phar`
`$php symfony.phar`
会显示版本号,及如何使用symfony installer 的简单介绍:
![](https://box.kancloud.cn/b72bf1b95dd631730c98a525fef34769_1280x1034.png)
接下来,我们用symfony.phar创建一个项目,新闻聚合类网站,取名news
`$php symfony.phar new news`
如果网络没问题的话(需要科学上网软件),应该会出现进度条,此时Symfony installer在当前目录下创建了news,并且初始化了Symfony框架的工作目录,以及下载所需要的PHP第三方库。
Downloading Symfony...
85.81 KB/4.89 MB ▓ 1%
当下载完成后,进入 news 目录,我们可以看到 Symfony installer 为我们初始化的工作目录。这里我们可以把一些对开发来说没有必要的文件删除掉(UPGRADE-***,LICENSE,README.md)。
不出意外,我们便可以通过一下命令开启一个 Web server 监听在 localhost:8000 上(注:此命令只能运行在 PHP 5.5 版本之上,并且 Windows 可能只能运行 server:run,两者的区别你们自己试试就知道)
`$php bin/console server:start localhost:8000`
[OK] Web server listening on http://localhost:8000
*** 注:在 3.0 以下的版本,console 位于 app 目录下面,后面所有 php bin/console xxx 命令,在老版本里都是 php app/console xxx,以下不再赘述!
另外在 *nix 环境下,app/console 或者 bin/console 只要有可执行权限,都是可以不需要显式调用 php 而直接运行的:
`$ bin/console server:start`
[OK] Web server listening on http://127.0.0.1:8000
在浏览器里访问 http://localhost:8000 应该可以看到Symfony Framework 安装好之后的欢迎界面了。
![](https://box.kancloud.cn/43310534223d764a7ffb34c8e08163eb_2022x948.png)
如果是2.7-以下版本,欢迎界面不一样。
至此,symfony初始化工作已经完成。
我们可以使用 Symfony 框架自带的脚本工具,来确认当前的环境是否已经足够顺利运行 Symfony:
`$ php bin/symfony_requirements`
在 Symfony 2.7- 下
`$ php app/check.php`
比如我这里显示的结果,命令运行结果推荐我安装 intl 扩展
![](https://box.kancloud.cn/0aa90b894e68d5cb72795a431f1c2e26_1184x870.png)
另外我们也可以看到提示说因为命令行加载的 php.ini 可能和 web 服务器加载的不一样(常见的 php-fpm 一般都跟命令行下的 php 加载的不是同一个 php.ini 文件),建议在浏览器里查看 径 /config.php 复查一下。
![](https://box.kancloud.cn/130bf3977903690b79a28330d0a2090f_2842x1436.png)
--
附:我在安装时遇到的问题:
macdeMacBook-Pro:data mac$ php news/bin/symfony_requirements
Symfony Requirements Checker
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> PHP is using the following php.ini file:
/usr/local/etc/php/5.6/php.ini
> Checking Symfony requirements:
.....E......................WW......
[ERROR]
Your system is not ready to run Symfony2 projects
Fix the following mandatory requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* date.timezone setting must be set
>Set the "date.timezone" setting in php.ini* (like Europe/Paris).
。。。
然后我自以为php.ini指的是,/private/etc/php.ini 修改了,重启了,还是报错。
就是没看清上面写着啊,
> PHP is using the following php.ini file:
/usr/local/etc/php/5.6/php.ini