2017-10-29 11 views
0

を構成し、私のアプリのエントリポイントを持つように使用してオートロードファイルへ。私はOOPを使ってフレームワークを使っていません。 マイcomposer.jsonファイルは次のとおりです。どのように自動ロードファイルにしようとしているのautoloadとPSR-4

このファイルのfunctions.phpで

{ 
 
    "require": { 
 
     "tebazil/db-seeder": "^0.0.0" 
 
    }, 
 
    "autoload": { 
 
     "psr-4": { 
 
      "vendor\\": "vendor/", 
 
      "App\\": "src/classes/" 
 
     }, 
 
     "files": [ 
 
      "src/functions.php" 
 
     ] 
 
    } 
 
}

私は、ベンダー/ autoload.phpファイルを含めたいです。 私はこの目的のためにフレームワークを使用したので、このベンダー/オートロードファイルを必要とするために、このエントリーポイントをアプリケーションのために作成する方法がわかりません。

これはのfunctions.phpの現在の内容ですが、私はindex.htmlのビューファイルをレンダリングするよう、別の問題がありますが、AJAXリクエストがあります。 しかし、アプリケーションと自動ロードに必要なファイル用のブートストラップファイルを作成する正しい方法は何ですか?私の知る限り、あなたが作曲で "のfunctions.php" を登録する必要はありません見ることができるよう

<?php 
 
namespace App; 
 

 
require_once __DIR__ . '/../vendor/autoload.php'; 
 

 
use App\Db; 
 
use App\User; 
 
class Functions 
 
{ 
 

 
    public function render() 
 
    { 
 
     ob_start(); 
 
     include(__DIR__ . '/../index.html'); 
 
     $content = ob_get_contents(); 
 
     ob_end_clean(); 
 
     echo $content; 
 
    } 
 
} 
 

 
if(!($_GET && array_key_exists('name', $_GET))) { 
 
    $functions = new Functions(); 
 
    $functions->render(); 
 

 
} 
 

 
if($_GET && array_key_exists('name', $_GET)){ 
 
    $user = new User(); 
 
    $users = $user->getUsers(); 
 
}

+0

あなたには循環依存があります。オートロードされたファイルはオートローダーに含まれていますが、オートローダーにはオートローダーが含まれています。 – tkausl

答えて

1

。アプリケーションの構造は次のとおりです。

- app_folder/ 
    - src/ 
    - classes/ 
    - index.html 
    - public/ 
    - functions.php 
    - vendor/ 
    - ... 

ここで、「functions.php」ファイルはアプリケーションのエントリポイントとして機能します。あなたのWebサーバーを "public"フォルダに誘導すると、他のすべてのファイルはPHPコードにアクセスできますが、ユーザーはアクセスできなくなります。

あなたは、モデルや「SRC」のビューのような「のfunctions.php」と場所コンポーネントであなたのルーティングまたは同様のタスクを実装することができ、そしてあなたは、シンプルで構造化されたアプリケーションを取得します。

+0

したがって、私はミニフレームワークを作成する必要があります。 –

+1

元の構造に加えた唯一の追加は、 "パブリック"フォルダという概念です。これは、Webサーバーからアクセスできる唯一のものです。エントリーポイントとすべてのアセットを入れてください。これはWebサーバーによって提供されます(例えば、画像)。他のすべてはあなたとあなたの仕事に依存します。必要なときに特定のライブラリを使用して、純粋なPHPでタスクを非常にうまく解決することができます。 –

関連する問題