symfony2里的MVC
1、 开发模式与发布模式
- debug模式
- release模式
2、日志目录和cache目录
debug模式调试ok了之后,需要清理一下cache才能用release模式访问
php app/console cache:clear # 方式一
rm -rf app/cache/* # 方式二
修改日志文件权限
chmod -R 777 app/cache/
chmod -R 777 app/logs/
3、外网访问debug模式
注释文件/web/app_dev.php
以下内容
if (isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| !(in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) || php_sapi_name() === 'cli-server')
) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}
4、什么是Bundle
bundle英文释义是捆,在symfony2中它就相当于一个组件
bundle里一般包含MVC的所有内容以及Resource和config
做一个静态页面1、写一个静态页面 app/Resources/views/
目录创建一个blog目录,并在blog里创建list.html.twig文件内容如下,也可以随意
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>MyWebSite</title>
<!-- 新 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href=2F%%2Fbootstrap%2F3.3.5%2Fcss%2Fbootstrap.min.css">
<!-- 可选的Bootstrap主题文件(一般不用引入) -->
<link rel="stylesheet" href%%2Fbootstrap%2F3.3.5%2Fcss%2Fbootstrap-theme.min.css">
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="///jquery/1.11.3/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="///bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>
<div class="row bg-primary">
<div class="col-sm-1 col-xs-1"></div>
<div class="col-sm-11 col-xs-11"><h1><a href?target=%22+style%3D"text-decoration: none;color: white;">MyWebSite</a></h1></div>
</div>
<div class="row jumbotron">
<div class="col-md-1 col-xs-1"></div>
<div class="col-md-10 col-xs-10"><h1>Welcome to MyWebSite!</h1></div>
<div class="col-md-1 col-xs-1"></div>
</div>
</body>
</html>
2、修改路由
在文件app/config/routing.yml
添加如下内容
blog_list:
path: /bloglist/
defaults: { _controller: AppBundle:Blog:list }
说明:
定义了网站不同的url路径所对应的controller
- blog_list:表配置组名字
- path:url路径
- defaults:响应的controller
这里设置的是执行AppBundler下的BlogController的listAction方法
3、修改控制器
创建src/AppBundle/Controller/BlogController.php
文件
<?php
namespace AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class BlogController extends Controller
{
public function listAction(Request $request)
{
return $this->render('blog/list.html.twig');
}
}
说明:
- render: 显示/渲染/输出,blog/list.html.twig这个模板的内容
4、访问测试