Linuxの教義とのsymfonyについて少し

symfonyを学び始め、まずオタク雑誌の記事を見ました symfonyでプロジェクトを作成する方法を説明した翻訳があります。symfonyでは、サンドボックスが基礎として使用されます。 フレームワークのソースコードのみでsymfony + doctrineをインストールして設定する方法を理解することに興味がありました。 私はやるべき大きなプロジェクトがあるので、この記事では私が何とか知ることができた方法を説明します。





0ステップ:一般



「/ home / nutt / workspace / htdocs」-プロジェクトが置かれ、Apacheが探しているフォルダー。



1ステップ:インストール



ソースをダウンロードしてプロジェクトフォルダーに解凍します

/home/nutt/workspace/htdocs





その後、フォルダーに直接移動してプロジェクトを作成します。 コマンドを実行した後、symfonyは必要なすべてのフォルダーを作成します。

nutt@nutt:~/workspace/htdocs$ sudo ./data/bin/symfony generate:project test





VirtualBoxでUbuntuのプロジェクトを開発しているので、次の調整は必要ないかもしれません。 開発パネルを表示するには(http://localhost/frontend_dev.php/)、次の場所で修正する必要があります。

~/workspace/htdocs/web/frontend_dev.php



if (!in_array(@$_SERVER[ 'REMOTE_ADDR' ], array ( '[ IP], ' ::80')))








次に、Apacheを構成する必要があります(/ etc / apache2 / sites-enabled / 000-default):

< VirtualHost [ IP ] :80 >

ServerName nutt.com

DocumentRoot /home/nutt/workspace/htdocs/web



php_admin_value register_globals Off



RewriteLog "/var/log/apache2/mod_rewrite.log"

RewriteLogLevel 2

Alias /sf /home/nutt/workspace/htdocs/data/web/sf

< Directory / home / nutt / workspace / htdocs / web >

Options Indexes FollowSymLinks MultiViews ExecCGI

Options All

AllowOverride All

Order allow,deny

Allow from all

</ Directory >

</ VirtualHost >








ステップ2:Doctrine



デフォルトでは、symfonyはPropelを使用します。 私のプロジェクトではDoctrine(sfDoctrinePlugin)に切り替える必要がありました。 このために

〜/ workspace / htdocs / configのProjectConfiguration.class.phpファイルを編集する必要があります



それは:

public function setup()

{

$ this ->enablePlugins(array( 'sfDoctrinePlugin' ));

$ this ->disablePlugins(array( 'sfPropelPlugin' ));

}




次のようになりました:

public function setup()

{

$ this ->enablePlugins(array( 'sfDoctrinePlugin' ));

}









Propelの設定から削除:

nutt@nutt:~/workspace/htdocs/config$ sudo rm propel.ini

nutt@nutt:~/workspace/htdocs/config$ sudo rm schema.yml









ドクトリンの接続を追加します。

nutt@nutt:~/workspace/htdocs$ sudo ./data/bin/symfony configure:database --name=doctrine -- class =sfDoctrineDatabase "mysql:host=localhost;dbname=test" root root









ステップ3:Doctrineを使用してテーブルを作成する





〜/ workspace / htdocs / config / doctrine / schema.ymlのschema.ymlファイルを編集します

users:

columns:

name: { type: string (255), notnull: true , unique: true }









クラスを生成します:

nutt@nutt:~/workspace/htdocs$ ./data/bin/symfony doctrine:build-model







SQLクエリの構築:

nutt@nutt:~/workspace/htdocs$ ./data/bin/symfony doctrine:build-sql







SQLを実行します。

nutt@nutt:~/workspace/htdocs$ ./data/bin/symfony doctrine:insert-sql







質問:



  1. 1つのIDに対して3つの外部キーを持つテーブルがあります。 Doctrineでは、それらを次のように説明しました:

    1. 関係:
    2. Tblaccount:
    3. foreignAlias:tbltransaction
    4. ローカル:intinaccountid
    5. 外国:intaccountid
    6. タイプ:1
    7. foreignType:多く
    8. Tblaccount:
    9. foreignAlias:tbltransaction
    10. ローカル:intoutaccountid
    11. 外国:intaccountid
    12. タイプ:1
    13. foreignType:多く
    14. Tblaccount:
    15. foreignAlias:tbltransaction
    16. ローカル:intfeeaccountid
    17. 外国:intaccountid
    18. タイプ:1
    19. foreignType:多く




    doctrine:build-sqlの後、最後の接続のみがSQLで生成されます:

    1. ALTER TABLE tbltransaction 外部 キーの 追加 (intfeeaccountid) 参照 tblaccount(intaccountid);


    すべての外部キーを作成する方法は?



  2. プロジェクト全体があり、symfony自体は同じフォルダーにあります。 これは正しいですか? プロジェクトをどのように手配しますか?


ありがとう



PS



長い間、私は最後の声友達の招待を受け取るのを待っていました。 ありがたいです。



All Articles