Symfony2 的简单示例

发布于 2024-10-16 20:16:12 字数 1539 浏览 7 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晚雾 2024-10-23 20:16:12

Symfony2 Bundles 是基于 Symfony2 的应用程序和第 3 方捆绑包的宝贵来源。

然而,你应该记住,你会发现很多项目已经过时了,因为 Sf2 仍然不稳定,而且它的 API 经常改变。

基本上,您所要做的就是:

  1. 确保在您的 ApplicationKernel 中启用 Doctrines 的捆绑包。
  2. 确保其配置正确:

    doctrine.dbal:
        驱动程序:pdo_pgsql
        主机:127.0.0.1
        用户:根
        密码: 密码
        数据库名称:my_database
        字符集:utf8
    
    学说.orm:
        映射:
            我的应用程序包:~
            一些第三方捆绑包:~
    
  3. 创建一些实体。

  4. 虽然您可以使用 Doctrine2 存储库,但我不太喜欢它们。 IMO 最好创建自己的管理器(他们可以使用原始存储库)来提供透明的 API。您不应该将模型层仅标识为 ORM。您可以查看 FriendsOfSymfony 的 UserBundle 因为他们的方法非常好。

最终用途:

$posts = $this->get('myapp.post_manager')->findRecentlyUsed(new \DateTime('-1 week'));

return $this->render('MyApp:Post:list.html.twig', array(
    'posts' => $posts
));

Symfony2 Bundles is a valuable source of Symfony2-based applications and 3rd-party bundles.

However, you should keep in mind that lots of project you can find out there is out-dated as Sf2 is still not stable and its API is changed quite often.

Basically, all you have to do is:

  1. Ensure that Doctrines' bundles are enabled in your ApplicationKernel.
  2. Make sure it's configured properly:

    doctrine.dbal:
        driver:   pdo_pgsql
        host:     127.0.0.1
        user:     root
        password: password
        dbname:   my_database
        charset:  utf8
    
    doctrine.orm:
        mappings:
            MyApplicationBundle:  ~
            SomeThirdPartyBundle: ~
    
  3. Create some entities.

  4. Although you could use Doctrine2 repositories I'm not a big fan of them. IMO it's better to create your own managers (they can use original repositories) that will provide a transparent API. You shouldn't identify your model layer as ORM only. You could check out UserBundle by FriendsOfSymfony as their approach is pretty good.

Final usage:

$posts = $this->get('myapp.post_manager')->findRecentlyUsed(new \DateTime('-1 week'));

return $this->render('MyApp:Post:list.html.twig', array(
    'posts' => $posts
));
攒眉千度 2024-10-23 20:16:12

Symfony DIC 和配置已更改!

您现在应该在 config.yml 中使用这样的内容:

doctrine:
    dbal:
        driver:   pdo_pgsql
        host:     127.0.0.1
        user:     root
        password: password
        dbname:   my_database
        charset:  utf8

    orm:
        mappings:
            MyApplicationBundle:  ~
            SomeThirdPartyBundle: ~

Symfony DIC and config has changed!

You should now use sth like this in your config.yml:

doctrine:
    dbal:
        driver:   pdo_pgsql
        host:     127.0.0.1
        user:     root
        password: password
        dbname:   my_database
        charset:  utf8

    orm:
        mappings:
            MyApplicationBundle:  ~
            SomeThirdPartyBundle: ~
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文