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


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

Source: https://habr.com/ru/post/J50642/


All Articles