0

こんにちは私は私のプロジェクトの組織についていくつかの助けとあなたの経験を求めています。これは私の最初のプロジェクトなので、私がそれを適切に組織しているかどうかはわかりません。これはさまざまなサイトへのeコマースプラットフォームです。私のプロジェクトは現在、次のように編成されています。

.
├── admin
│   └── index.php (redirects to system/admin/index.php)
├── conf.php (saves info about the server database etc...)
├── index.php
└── system
    ├── admin
    │   ├── add_prd.php
    │   └── index.php(this is the main administration page)
    ├── css
    │   └── css.css
    ├── func.php(this is my functions library witch is included in every file that uses a function made by me)
    ├── img (this is where all pics go)
    │   ├── img_artigos(this is where all pics *of the products* go)
    │   │   ├── product1.png
    │   │   └── ...
    │   └── (system images go here)banner, all other images of the "template", etc...(probably i will make a new folder called system for that)
    ├── logout.php
    ├── order.php
    └── reg.php

これがどのように機能するか、インデックスにはすべてのものが含まれています。レジスタがクリックされたときにスイッチケースを使用してページがリロードされ、GETを介して、登録フォームをエコーアウトする関数register()を実行する命令を受け取ります。データベースに登録を挿入し、index.phpにリダイレクトするreg.php(ツリーの最後のファイル)に送信されます。関数を実行するためだけにリダイレクトしてからインデックスに戻るlogout()とorder()にも同じことが起こります。このページは、1つの関数を使用して、ユーザーをインデックスページにリダイレクトするためだけにあります。リダイレクトに対して同じことを行うことも考えました。スイッチケースを使用してさまざまな関数を実行し、インデックスにリダイレクトします。サイトには、インデックス、管理者インデックス、リダイレクト、css、およびfuncファイルのみが含まれます...

ユーザーが自分の名前をクリックすると、ページがリロードされ、GETを使用して、プロファイル情報をエコーするprofile_display()関数をロードするようにスイッチケースに指示します...

同じことが管理セクションにも当てはまります。管理ユーザーは、さまざまなページをナビゲートする感覚を持ちますが、実際には、インデックスを離れることはありません。

私が知りたいのは、これが正しいかどうか、何らかの問題が発生するかどうか、または悪い慣行を使用しているかどうかです...より伝統的な方法(多くのファイル)を使用する必要があるかどうか、そして何が良くなるか従来のまたはこれを維持するために...そしてこれのためにサーバー側で問題が発生する場合は、あなたの意見。前もって感謝します。

4

1 に答える 1

1

あなたの組織はそれほど悪くはないと思いますが、その非常に基本的な構造であり、それほどスケーラブルではありません。あなたのプロジェクトが大きくなっているなら、あなたはそれほど幸せにとどまることはありません。

ページリクエストのすべてのルーティングを実行し、プロジェクトの保守性を維持するのに役立つさまざまなMVCフレームワークを確認することをお勧めします。また、論理コードとレイアウトを分割するのにも役立ちます。

その構造にとどまりたくない場合は、少なくともその一部を変更する必要があります。

私はあなたを誤解するかもしれませんが、あなたはそれをすべて同じようにすべきです。私の意見では、switchステートメントから呼び出された関数を使用せず、同時にreg.phpに直接リダイレクトします。

switch($page) {
    case "register":
    //inlude file or call function
    break;
    case "register_submit":
    //inlude file or call function
    break;
    case "logout":
    //inlude file or call function
    break;
    case "order":
    //inlude file or call function
    break;
    case "login":
    //inlude file or call function
    break;
}

次に、「アセット」フォルダを作成するか、システムフォルダと同じレベルで好きな名前を付けて、すべてのcss / js/imageファイルをそこに配置します。

ただし、MVCフレームワークを使用することをお勧めします。個人的にはCodeigniterを使用しています。しかし、たとえばコハナのようないくつかの優れたフレームワークがあります。

于 2012-11-15T11:56:06.613 に答える