Symfony学习总结一


今晚要开始一个Symfony项目;
那么通过官网学习了

下载创建一个Symfony项目原型:一个全功能的Symfony程序;

然后阅读了如何创建一个页面;

如何使用路由;

第一创建一个Symfony项目原型,
我使用的是composer,如下命令:
composer create-project symfony/framework-standard-edition my_project_name;
创建完这个原型,我执行php bin/console server:run,可以跑起来;

学习新技能:
1:经常使用composer update可以防止bug和漏洞;
2:定期执行php bin/console security:check,可以检查重大安全漏洞;
3:要程序运行,执行composer install;下载和安装程序所需的全部依赖:

第二创建一个Symfony的页面

controller和Routing,template :

我并没有继续写代码只是在看文档,所以此刻记录下重点:
1:一个控制器必须返回一个Symfony的Response对象
2:在控制器中返回的Response对象可以包含HTML,JSON甚至二进制文件比如图片或PDF,设置HTTP头信息或HTTP状态码
3:返回一个json如:

      $data = array(
            'lucky_number' => rand(0, 100),
        );
 
        return new Response(
            json_encode($data),
            200,
            array('Content-Type' => 'application/json')
        );

 可以再简化如:

        $data = array(
            'lucky_number' => rand(0, 100),
        );
 
        // calls json_encode and sets the Content-Type header
        // 自动调用json_encode并设置Content-Type头
        return new JsonResponse($data);

 4:URL:

    /**
     * @Route("/lucky/number/{count}")
     */

其中{count}叫做通配符,只要方法中传一样名称的变量就可以取到它,可以传多个参数;

 模板:

1:其中使用templating服务,这样取:

 $html = $this->container->get('templating')->render(
            'lucky/number.html.twig',
            array('luckyNumberList' => $numbersList)
        );

return new Response($html);

2:templating服务,是TwigEngine的实例,里面有个render()方法;

3:服务容器”,它拥有很多对象,然后你可以通过“昵称”(比如templatinglogger)利用get()来得到其中的任何一个对象;

4:各个包的目录结构;

第三路由系统

symfony路由系统的目的是解析url,并确定调用哪个控制器。整个过程是这样的:

  1. 由Symfony的前端控制器(如app.php)来处理请求。

  2. symfony的核心(Kernel内核)要求路由器来检查请求。

  3. 路由将输入的URL匹配到一个特定的路由,并返回路由信息,其中包括要执行的控制器信息。

  4. Symfony内核执行控制器并最终返回Response对象

页面里使用url

<a href="{{ path('blog_show', {'slug': 'my-blog-post'}) }}">
  Read this blog post.
</a>

猜你喜欢

转载自amos-franck.iteye.com/blog/2368536