Praktik terbaik struktur folder proyek php

Ini hampir tahun 2018 dan sebagian besar situs web modern yang ditulis dalam PHP ditulis dalam semacam kerangka kerja MVC atau MVT, yang paling terkenal adalah Laravel dan CodeIgniter, Laravel menjadi favorit pribadi saya

Namun, saya tahu banyak rekan saya yang baru saja memulai dengan PHP dan ketika mereka mencoba mengubah beberapa ide menjadi proyek PHP, saya melihat mereka berjuang untuk mempertahankan proyek tersebut. Sekarang tidak seperti kerangka kerja, mempertahankan proyek inti PHP benar-benar sulit (jika Anda belum membaca artikel ini)

Selama bertahun-tahun menulis PHP inti dan menggunakan kerangka kerja seperti Laravel atau CodeIgniter, saya telah mengembangkan beberapa teknik atau peretasan jika Anda bisa, yang membantu saya mempertahankan proyek inti PHP dengan cara yang jauh lebih mudah yang akan saya jelaskan di artikel berikut

Pertama adalah struktur folder, saya akan merekomendasikan memecah proyek Anda menjadi 4 folder

.
├── assets/
├── helpers/
├── views/
├── process/
├── .htaccess
└── index.php
  • aktiva. Folder ini akan berisi semua file aset, gambar, style-sheet dan file JavaScript dan jika Anda ingin menggunakan hard core, buat direktori terpisah untuk setiap jenis file, yang saya lakukan secara pribadi
  • pandangan. Folder ini akan berisi semua file php yang akan bertindak sebagai "tampilan", yang pada dasarnya berarti ini adalah file yang menampilkan beberapa formulir atau beberapa halaman web
  • proses. Folder ini akan berisi semua proses, yang pada dasarnya berarti semua file daripada menangani pengiriman formulir dan bentuk proses lainnya. Batasi file-file ini ke proses tiga langkah, input > process > redirect
  • pembantu. Folder ini akan berisi fungsi spesifik yang akan digunakan semua file, contoh terbesarnya adalah koneksi database. Pernahkah Anda menulis mysqli_connect() di atas setiap file dalam proyek besar dan kemudian harus mengubah kata sandi di 20 file berbeda?

Sekarang mari kita pahami bagaimana kita dapat mengotomatiskan lebih lanjut beberapa folder di atas

Tampilan

Salah satu peretasan paling sederhana yang dapat kita gunakan untuk membuat hidup kita lebih mudah adalah dengan menggunakan sub-tampilan. Yaitu, memecah beberapa bagian kode yang digunakan di setiap halaman dan menuliskannya ke dalam file terpisah, dan memasukkannya ke dalam setiap file tampilan

Jadi, misalkan kita membuat blog, dan halaman web memiliki header, footer, sidebar, dan body utama

Yang jelas, ada tiga bagian website yang akan ada di setiap halaman header, footer dan sidebar. Jadi yang bisa kita lakukan dengan mudah adalah membuat file terpisah untuk setiap bagian dan menyertakannya menggunakan fungsi include()

Setelah membuat ulang struktur folder, akan terlihat seperti ini

.
├── assets
├── helpers
├── process
├── views
│ └── sub-views
│ ├── footer.php
│ ├── header.php
│ └── sidebar.php
├── .htaccess
└── index.php
_

Dan untuk menggunakan sub-tampilan di index. php atau file lain kami akan menulis sesuatu seperti ini

Sekarang, di sini kita akan mengalami beberapa masalah dengan kode ini jika kita memiliki file di bawah direktori views. Karena referensi relatif ke direktori sub-views tidak akan berfungsi. Apa yang dapat kita lakukan sebagai peretasan murah adalah dengan hanya mengubah jalur penyertaan dari views/sub-views/footer. php ke sub-views/footer. php

Namun, kami tidak ingin mendapatkan lebih banyak utang teknis, jadi kami akan mencoba mengotomatiskan seluruh proses. Masukkan pembantu

Pembantu

Direktori pembantu sebagian besar akan digunakan untuk menulis fungsi pembantu untuk menggunakan kembali kode yang harus kita tulis banyak di proyek. Fungsi pembantu pertama yang akan kita tulis adalah subview(String), yang akan mengambil nama file tampilan, dan menyertakan file menggunakan jalur absolut. Mari saya tunjukkan bagaimana tampilannya

Mari kita pahami apa fungsi ini, dibutuhkan nama file sebagai input, katakanlah header. php, menghasilkan jalur absolut untuk file itu, dan menyertakannya, jadi dari mana pun kami memanggil fungsi ini, kami akan selalu mendapatkan jalur yang benar

Kami menggunakan __DIR__ untuk mendapatkan direktori saat ini, yang akan menjadi direktori pembantu, sekarang hal pertama yang kami lakukan adalah a. / yang mengubah direktori ke root proyek, lalu kita arahkan ke views/sub-views/ dan kemudian tambahkan nama file

Keluaran dari shell interaktif php

Sekarang, untuk menggunakan file helper, kita perlu menyertakannya di atas file tampilan, setelah melakukan perubahan, file indeks sekarang terlihat seperti ini

Terlihat lebih bersih dari sebelumnya, bukan?

File pembantu yang paling banyak digunakan adalah tempat kita terhubung ke database, sesuatu yang dibutuhkan setiap situs web dinamis. Mari kita membuat koneksi. php di direktori pembantu

.
├── assets
├── helpers
│ ├── conn.php
│ └── helper.php
├── process
├── views
│ └── sub-views
│ ├── footer.php
│ ├── header.php
│ └── sidebar.php
├── .htaccess
└── index.php

Isi sambungan. php file akan terlihat seperti ini

Perhatikan fungsi kueri, itu tidak hanya akan mengeksekusi kueri tetapi juga akan melakukan penanganan kesalahan secara otomatis setiap saat

Satu hal yang saya perhatikan adalah bahwa para pemula benar-benar mengabaikan penanganan kesalahan, bagian terpenting dari penulisan inti php adalah menangani semua kesalahan

Selalu berharap ada yang tidak beres, bersiaplah untuk setiap kesalahan

Sekarang, jika kita ingin menyertakan file ini di setiap file tampilan/proses, kita harus menulis include_sekali lagi di atas setiap file, dan akan terlihat seperti ini

<?php include_once 'helper/helper.php';
<?php include_once 'helper/conn.php';

Mari kita berpikir jangka panjang, misalkan ini adalah proyek besar, kita akan memiliki banyak file pembantu, tidak ada ide yang baik untuk menulis semua fungsi dalam file yang sama, pisahkan sesuai dengan tujuannya, lebih mudah untuk Anda temukan di masa mendatang

Saat memprogram, selalu buat diri Anda saat ini bekerja lebih baik sehingga diri Anda di masa depan dapat bersantai sambil menambahkan fitur baru atau memperbaiki bug

Jadi, agar tidak menulis ribuan baris di atas setiap file yang bisa kita lakukan adalah, tulis init. php di direktori helper, yang akan menyertakan semua file helper, dan kemudian menyertakan init. php di atas semua file, dengan begitu Anda akan mendapatkan akses ke semua file pembantu, dan jika Anda menambahkan file pembantu baru di init. php, itu akan ditambahkan ke semua file

.
├── assets
├── helpers
│ ├── conn.php
│ ├── helper.php
│ └── init.php
├── process
├── views
│ └── sub-views
│ ├── footer.php
│ ├── header.php
│ └── sidebar.php
├── .htaccess
└── index.php
_

init. php akan terlihat seperti ini

Meskipun ini adalah beberapa cara yang sangat halus untuk pada akhirnya mengurangi jumlah pekerjaan yang perlu Anda lakukan untuk mempertahankan sebuah proyek, tentu tidak terbatas hanya pada metode ini, jadi lain kali Anda mulai mengerjakan sebuah proyek, pikirkan jangka panjang,

Menutup Pikiran

Jika posting ini mendapat daya tarik yang cukup, saya akan membagikan lebih banyak peretasan dan teknik yang saya gunakan setiap hari untuk membuat pemeliharaan kode sedikit lebih mudah

Bagaimana menyusun proyek PHP saya?

Tidak ada aturan umum tentang struktur proyek PHP. .
Folder publik berisi semua file yang dapat diakses langsung melalui HTTP/HTTPS. .
Folder Modules akan berisi semua logika aplikasi Anda. .
Sebaliknya, folder Template berisi semua kode PHP untuk merender halaman

Apa itu struktur file PHP?

1. 2. Struktur Skrip PHP. PHP adalah bahasa skrip tertanam saat digunakan di halaman Web. Ini berarti bahwa kode PHP tertanam dalam kode HTML. Anda menggunakan tag HTML untuk menyertakan bahasa PHP yang Anda sematkan dalam file HTML Anda — cara yang sama seperti Anda menggunakan tag HTML lainnya

Apa folder src untuk PHP?

Ketika datang ke banyak proyek kelas PHP, tambahkan mereka ke direktori bernama src atau app. Dalam aplikasi PHP modern, menyusun file PHP di direktori src adalah bagian dari pemrograman berorientasi objek dan pola desain . Setiap namespace disajikan dengan subdirektori di direktori src.