Fungsi dan definisi kemasukan fail
Takrif kemasukan fail
6.0 Fail kemasukan aplikasi lalai terletak di public/index.php, dan kandungan lalai adalah seperti berikut:
// [ 应用入口文件 ] namespace think; require __DIR__ . '/../vendor/autoload.php'; // 执行HTTP应用并响应 $http = (new App())->make('http'); $response = $http->run(); $response->send(); $http->end($response);
Jika anda tidak mempunyai keperluan penyesuaian khas, tidak perlu berbuat apa-apa pada fail entri Tukar.
Lokasi fail kemasukan direka untuk menjadikan penggunaan aplikasi lebih selamat. Sila cuba ikuti direktori awam kerana satu-satunya direktori yang boleh diakses oleh web boleh diletakkan dalam direktori yang tidak boleh diakses oleh WEB.
Fail masukan konsol
Selain fail kemasukan aplikasi, sistem juga menyediakan fail masukan konsol, yang terletak di think dalam direktori akar projek (perhatikan bahawa fail ini tidak mempunyai sebarang akhiran).
Kod fail adalah seperti berikut:
#!/usr/bin/env php <?php namespace think; // 加载基础文件 require __DIR__ . '/vendor/autoload.php'; // 应用初始化 (new App())->console->run();
Fail masukan konsol digunakan untuk melaksanakan arahan konsol, contohnya:
php think version
Sistem mempunyai beberapa arahan konsol yang biasa digunakan jika anda memasang sambungan tambahan, kawalan yang sepadan akan juga ditambah arahan Taiwan semuanya dilaksanakan melalui fail entri ini.
Jika terdapat direktori perpustakaan kelas seperti pengawal, model dan paparan terus di bawah direktori aplikasi, ia adalah mod aplikasi tunggal (mod lalai Jika subdirektori aplikasi dibuat di bawah direktori aplikasi, ia akan menjadi mod berbilang aplikasi secara automatik .
Perbezaan struktur direktori antara aplikasi tunggal dan berbilang aplikasi adalah seperti berikut (terutamanya dalam direktori aplikasi).
Mod aplikasi tunggal
├─direktori aplikasi aplikasi
│ ├─pengawal ├─model ├─direktori model
│ ├─lihat Direktori Lihat ├─
│
├─WEB awam direktori (direktori capaian luaran)
│ ├─index.php Fail masukan
│ ├─router.php Fail ujian pantas
│ └─.htaccess untuk penulisan semula aplikasi apache├
Konfigurasi Cat ├G FI
├ Laluan Katalog Definisi Laluan ├ Katalog Direktori Masa Jalan Mod Berbilang Aplikasi ─ Direktori Aplikasi APP ├ ─ ├ ├ ├ │ │ ├├pengawal direktori model model │ │ ├─lihat Paparan direktori │ │ ├─config Direktori konfigurasi (keutamaan) │ ─ Aplikasi latar belakang ADmin│ ─config Direktori konfigurasi (keutamaan)
│ │ └─ ... Lagi Kategori direktori perpustakaan) direktori perpustakaan awam
)
─ ├ ─ fail masuk latar belakang admin.php │ │ └─admin │ └ konfigurasi aplikasi pentadbir └─admin permohonan pentadbir direktori runtime Seperti yang dapat dilihat daripada struktur direktori, setiap aplikasi kekal secara relatifnya bebas, dan setiap aplikasi mempunyai fail kemasukan yang sepadan Aplikasi ini juga boleh mengekalkan kumpulan pengawal melalui pengawal berbilang peringkat. Apabila berbilang aplikasi menggunakan entri yang berbeza, kandungan setiap fail masukan adalah sama Nama fail masukan lalai (tanpa akhiran) ialah nama aplikasi Jika nama fail masukan anda tidak konsisten dengan aplikasi, seperti aplikasi pentadbir bahagian belakang anda , nama fail masukan menggunakan think.php, maka fail masukan perlu ditukar kepada:// [ 应用入口文件 ] namespace think; require __DIR__ . '/../vendor/autoload.php'; // 执行HTTP应用并响应 $http = (new App())->make('http'); $response = $http->name('admin')->run(); $response->send(); $http->end($response);Mod aplikasi tunggal dan berbilang aplikasi akan mempengaruhi nilai beberapa laluan sistem untuk memahami kandungan dengan lebih baik manual ini, anda mungkin perlu memahami Lokasi berikut yang diwakili oleh beberapa laluan sistem. Lokasi direktori kelas adalah instantiated masuk.
Direktori asas | app direktori di bawah direktori root | |
---|---|---|
Direktori aplikasi | Direktori di mana aplikasi semasa terletak Jika ia adalah mod aplikasi tunggal, ia adalah sama dengan direktori asas Jika ia adalah mod berbilang aplikasi, ia adalah App 类的时候传入。 | App::getRootPath() |
基础目录 | 根目录下的app 目录 | App::getBasePath() |
应用目录 | 当前应用所在的目录,如果是单应用模式则同基础目录,如果是多应用模式,则是app /应用子目录 | App::getAppPath() |
配置目录 | 根目录下的config 目录 | App::getConfigPath() |
运行时目录 | 框架运行时的目录,单应用模式就是根目录的runtime 目录,多应用模式为runtime /应用子目录 | App::getRuntimePath() |
核心类库目录 | 框架核心类库的think 目录 | App::getThinkPath() |
config
direktori di bawah direktori root🎜🎜App ::getConfigPath()
🎜🎜🎜🎜 Direktori masa jalan🎜🎜Direktori apabila rangka kerja ialah mod aplikasi tunggal ialah direktori Nota: Aplikasi menyokong penggunaan pakej komposer Pada masa ini, direktori mungkin direktori di mana perpustakaan kelas pakej komposer berada.
Untuk penggunaan berbilang aplikasi bukan automatik, jika anda ingin memuatkan aplikasi komposer, anda perlu menetapkan laluan aplikasi dalam fail entri:
// [ 应用入口文件 ] namespace think; require __DIR__ . '/../vendor/autoload.php'; // 执行HTTP应用并响应 $http = (new App())->make('http'); $response = $http->path('path/to/app')->run(); $response->send(); $http->end($response);
Pengerahan berbilang aplikasi automatik
pendukung aksesaplikasi dalam aplikasi fail kemasukan yang sama, dan menyokong pemetaan dan penyesuaian aplikasi.
Anda hanya perlu menetapkan
// 开启自动多应用模式 'auto_multi_app' => true,
dalam fail konfigurasi config/app.php Anda tidak perlu membuat fail masukan untuk setiap aplikasi Sebaliknya, anda boleh mengakses berbilang aplikasi secara automatik melalui fail masukan index.php. Jika anda menggunakan akses URL berbilang masukan Ia adalah:
// 访问admin应用 http://serverName/admin.php // 访问shop应用 http://serverName/shop.php
Selepas menghidupkan mod berbilang aplikasi automatik, ia menjadi
// 访问admin应用 http://serverName/index.php/admin // 访问shop应用 http://serverName/index.php/shop
Maksudnya, parameter pertama alamat pathinfo mewakili nama aplikasi semasa, dan yang berikut adalah laluan permohonan.
Jika anda mengakses
http://serverName/index.php
secara langsung, anda sebenarnya sedang mengakses aplikasi indeks (lalai ialah nama fail kemasukan Jika aplikasi lalai anda bukan indeks, anda boleh menentukan aplikasi lalai melalui parameter konfigurasi aplikasi_default).
// 设置默认应用名称 'default_app' => 'home',
Kemudian lawati
http://serverName/index.php
Malah, apa yang anda akses ialah aplikasi rumah.
Pemetaan aplikasi
Pemetaan aplikasi hanya menyokong mod berbilang aplikasi automatik
menyokong pemetaan alias aplikasi, contohnya:
'app_map' => [ 'think' => 'admin', // 把admin应用映射为think ],
Selepas pemetaan aplikasi, contohnya, nama aplikasi yang boleh diakses tidak akan menjadi asal. aplikasi admin di atas tidak boleh diakses terus Akses hanya boleh diakses melalui aplikasi think.
Jika anda ingin menggunakan komposer untuk memuatkan aplikasi, anda perlu menyediakan
'app_map' => [ 'think' => function($app) { $app->path('path/to/composer/app'); }, ],
Aplikasi mengikat nama domain
Jika berbilang aplikasi anda menggunakan berbilang subdomain atau nama domain bebas untuk akses, anda boleh menentukan nama domain dan nama domain dalam fail konfigurasi config/app.php Application binding.
Melarang akses aplikasi
Melarang akses aplikasi hanya menyokong mod berbilang aplikasi automatik
Jika anda tidak mahu aplikasi diakses melalui URL, contohnya, anda telah menambah subdirektori biasa untuk meletakkan beberapa perpustakaan kelas awam , anda boleh Tetapan
'deny_app_list' => ['common']