12602


お世話になります。

件名の通り「symfony2でapp/consoleを使わずにプログラムを作成する方法」を教えて頂けませんでしょうか？

私は、従来、ZendFramework(2ではありません)とCodeIgniterを使って
手作り？で実装しています。（contorolerやmodel、viewは手組みという意味です）

なので、出来れば従来通りの開発方法がピンとくるのですが、symfonyだとどう組めば良いのか？ と悩んでいます。  
どのサイトを見てもapp/consoleコマンドを使用して色々と自動的に生成すると書いているように見えて・・・

お手数をお掛けして申し訳ございませんが、よろしくお願いします。


CC BY-SA 3.0
2015-07-22T04:15:55.760
12563
2015-07-27T05:17:36.823
10533
question
symfony2
symfony2でapp/consoleを使わずにプログラムを作成する方法


コマンドは定型的なクラスを自動で間違いなく作ってくれるだけなので、コントローラも、いわゆるモデル（エンティティ）も、手動で作ることはできますよ。（Bundleを作るのだけはコマンドに頼ったほうが楽だと思いますが、手動でできないことはないです）

例えばAcmeDemoBundleにHogeControllerというコントローラを作りたいとしたら、src/Acme/DemoBundle/Controllerディレクトリを作り、その中に下記のような内容でHogeController.phpという名前のファイルを作ってください。

[code]

    <?php
    
    namespace Acme\DemoBundle\Controller:
    
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    
    class HogeController extends Controller
    {
    }
    
[/code]

ここにアクションのメソッドを書き、ルーティングを適切に設定すれば、手動で作ったコントローラクラスであっても（当然に）Symfony2アプリケーションのコントローラとして正常に動作します。

エンティティも同様に、AcmeDemoBundleにPostエンティティを作りたいときは、src/Acme/DemoBundle/Entityディレクトリを作り、その中に下記のような内容でPost.phpという名前  
のファイルを作ってください。

[code]

    <?php
    
    namespace Acme\DemoBundle\Entity;
    
    use Doctrine\ORM\Mapping as ORM;
    
    /**
     * @ORM\Table
     * @ORM\Entity
     */
    class Post
    {
        // マッピング定義をここに
    }
    
[/code]

Doctrine2用のマッピングの書き方（アノテーションの書き方）は  
<http://doctrine-orm.readthedocs.org/en/latest/reference/annotations-
reference.html>  
に網羅されています。プリフィクスとして `ORM\` をつける点だけ注意してください。

ビューは私もいつも手動生成ですが、src/Acme/DemoBundle/Resources/views配下に置いてあれば何も問題はないです。


CC BY-SA 3.0
2015-07-23T06:02:29.930
12602
2015-07-27T05:17:36.823
2015-07-27T05:17:36.823
5518
5518
12563
answer