我用了13行代碼開發(fā)出來的PHP框架
Jul 09, 2016 am 09:10 AM我只用13行代碼開發(fā)的PHP框架,如果您對框架不理解,不知道框架究竟幫您做了什麼事,可以下載此框架看一下,
另外如果您想開發(fā)自己的框架也可以由這個框架的思路進行擴展.
源碼下載地址:http://download.csdn.net/detail/sibang/6197315
代碼:
<span style="color: #008080;"> 1</span> <span style="color: #000000;">PHP </span><span style="color: #008080;"> 2</span> <span style="color: #008000;">/*</span><span style="color: #008000;">* </span><span style="color: #008080;"> 3</span> <span style="color: #008000;"> PHP極簡框架 </span><span style="color: #008080;"> 4</span> <span style="color: #008000;"> 交流: </span><span style="color: #008080;"> 5</span> <span style="color: #008000;"> QQ群: 223494678 </span><span style="color: #008080;"> 6</span> <span style="color: #008000;"> http://7di.net </span><span style="color: #008080;"> 7</span> <span style="color: #008000;"> 用法 </span><span style="color: #008080;"> 8</span> <span style="color: #008000;"> http://URL </span><span style="color: #008080;"> 9</span> <span style="color: #008000;"> http://URL/hello </span><span style="color: #008080;">10</span> <span style="color: #008000;"> http://URL/seven.php?w=hello </span><span style="color: #008080;">11</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*/</span> <span style="color: #008080;">12</span> <span style="color: #008080;">13</span> <span style="color: #008080;">Header</span>('Content-type: text/html; charset=UTF-8'<span style="color: #000000;">); </span><span style="color: #008080;">14</span> <span style="color: #800080;">$w</span>=<span style="color: #0000ff;">isSet</span>(<span style="color: #800080;">$_REQUEST</span>['w']) ? <span style="color: #008080;">AddsLashes</span>(<span style="color: #800080;">$_REQUEST</span>['w']) : ''<span style="color: #000000;">; </span><span style="color: #008080;">15</span> <span style="color: #800080;">$w</span>=(<span style="color: #008080;">Trim</span>(<span style="color: #800080;">$w</span>)=='') ? 'index' : <span style="color: #800080;">$w</span><span style="color: #000000;">; </span><span style="color: #008080;">16</span> <span style="color: #008080;">17</span> <span style="color: #0000ff;">IF</span>(!<span style="color: #008080;">is_callable</span>(<span style="color: #800080;">$w</span><span style="color: #000000;">)) { </span><span style="color: #008080;">18</span> <span style="color: #0000ff;">Exit</span>('Error:'.<span style="color: #ff00ff;">__LINE__</span>.',參數(shù)錯誤!'<span style="color: #000000;">); </span><span style="color: #008080;">19</span> <span style="color: #000000;">} </span><span style="color: #008080;">20</span> <span style="color: #800080;">$w</span><span style="color: #000000;">(); </span><span style="color: #008080;">21</span> <span style="color: #008080;">22</span> <span style="color: #0000ff;">Function</span><span style="color: #000000;"> hello(){ </span><span style="color: #008080;">23</span> <span style="color: #0000ff;">Echo</span> 'Hello World!'<span style="color: #000000;">; </span><span style="color: #008080;">24</span> <span style="color: #000000;">} </span><span style="color: #008080;">25</span> <span style="color: #008080;">26</span> <span style="color: #0000ff;">Function</span><span style="color: #000000;"> index(){ </span><span style="color: #008080;">27</span> <span style="color: #0000ff;">Echo</span> '此框架由Seven編寫,來自QQ群:223494678'<span style="color: #000000;">; </span><span style="color: #008080;">28</span> }
.htaccess的內(nèi)容
?
下邊是註釋:
Header('Content-type: text/html; charset=UTF-8'); //定義編碼 $w=isSet($_REQUEST['w']) ? AddsLashes($_REQUEST['w']) : ''; //獲取參數(shù)w的值,w來自于rewrite規(guī)則文件.htaccess $w=(Trim($w)=='') ? 'index' : $w; //如果參數(shù)w的值為空,則訪問默認的index方法 IF(!is_callable($w)) { //如果$w所屬的function不存在 Exit('Error:'.__LINE__.',參數(shù)錯誤!'); //拋出錯誤 } $w(); //調(diào)用$w名稱對應的function,例如:http://URL/hello會調(diào)用hello()這個function //自定義方法(可自由擴展) Function hello(){ Echo 'Hello World!'; } Function index(){ Echo '此框架由Seven編寫,來自QQ群:223494678'; }
?

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Lazy memuatkan hanya pertanyaan apabila mengakses persatuan dengan mudah boleh membawa kepada masalah n 1, yang sesuai untuk senario di mana data yang berkaitan tidak ditentukan sama ada ia diperlukan; 2. Kegunaan pemuatan kecemasan dengan () untuk memuatkan data yang berkaitan terlebih dahulu untuk mengelakkan pertanyaan n 1, yang sesuai untuk senario pemprosesan batch; 3. Pemuatan kecemasan harus digunakan untuk mengoptimumkan prestasi, dan masalah n 1 dapat dikesan melalui alat seperti Laraveldebugbar, dan $ dengan atribut model digunakan dengan teliti untuk mengelakkan overhead prestasi yang tidak perlu.

Laravel menyokong penggunaan pertanyaan SQL asli, tetapi parameter mengikat harus lebih disukai untuk memastikan keselamatan; 1. Gunakan db :: pilih () untuk melaksanakan pertanyaan pilih dengan parameter mengikat untuk mencegah suntikan SQL; 2. Gunakan db :: kemas kini () untuk melaksanakan operasi kemas kini dan mengembalikan bilangan baris yang terjejas; 3. Gunakan db :: masukkan () untuk memasukkan data; 4. Gunakan db :: padam () untuk memadam data; 5. Gunakan db :: pernyataan () untuk melaksanakan pernyataan SQL tanpa set keputusan seperti membuat, mengubah, dan sebagainya; 6. Adalah disyorkan untuk menggunakan Whereraw, SelectRaw dan kaedah lain dalam QueryBuilder untuk menggabungkan ungkapan asli untuk meningkatkan keselamatan

JWT adalah standard terbuka untuk penghantaran maklumat yang selamat. Di Java, pengesahan dan kebenaran dapat dicapai melalui Perpustakaan JJWT. 1. Tambah JJWT API, Impl dan Jackson Dependencies; 2. Buat kelas alat JWTutil untuk menjana, menghuraikan dan mengesahkan token; 3. Tulis JWtfilter memintas permintaan dan sahkan Bearertokens dalam pengepala kebenaran; 4. Daftar penapis dalam springboot untuk melindungi laluan yang ditentukan; 5. Menyediakan antara muka log masuk untuk mengembalikan JWT selepas mengesahkan pengguna; 6. Antara muka yang dilindungi memperoleh identiti dan peranan pengguna melalui menguraikan token untuk kawalan akses, dan akhirnya menyedari mekanisme keselamatan yang tidak bertenaga dan extensible, sesuai untuk sistem yang diedarkan.

Go Generik disokong sejak 1.18 dan digunakan untuk menulis kod generik untuk jenis selamat. 1. Fungsi generik printslice [tany] (s [] t) boleh mencetak kepingan mana -mana jenis, seperti [] int atau [] rentetan. 2. Melalui had bilangan kekangan jenis t ke jenis angka seperti int dan float, jumlah [tnumber] (slice [] t) t Summation selamat direalisasikan. 3. Struktur generik Typebox [Tany] struct {valuet} boleh merangkum sebarang nilai jenis dan digunakan dengan pembina kotak baru [Tany] (Vt)*. 4. Tambahkan set (vt) dan dapatkan () kaedah t untuk kotak [t] tanpa

json.loads () digunakan untuk menghuraikan rentetan json ke dalam struktur data python. 1. Input mestilah rentetan yang dibungkus dalam petikan berganda dan nilai boolean adalah benar/palsu; 2. Menyokong penukaran automatik Null → Tiada, Objek → Dict, Array → List, dan sebagainya; 3. Ia sering digunakan untuk memproses rentetan JSON yang dikembalikan oleh API. Sebagai contoh, response_string boleh diakses secara langsung selepas parsing oleh json.loads (). Apabila menggunakannya, anda mesti memastikan bahawa format JSON betul, jika tidak, pengecualian akan dibuang.

Gunakan kumpulan menangkap ekspresi biasa di Notepad untuk menyusun semula teks dengan berkesan. Pertama, anda perlu membuka kotak dialog Penggantian (Ctrl H), pilih "Mod Carian" sebagai "Ekspresi Biasa", 1. Gunakan () untuk menentukan kumpulan penangkapan, seperti (\ w) untuk menangkap kata -kata; 2. Gunakan \ 1 dan \ 2 untuk merujuk kumpulan yang sepadan dalam kotak penggantian; 3. Contoh: Tukar nama "Johndoe" sebagai "Doe, John", cari (\ w) \ s (\ w), ganti dengan \ 2, \ 1; 4. Penukaran Format Tarikh 2023-12-25 hingga 25/12/2023, cari (\ d {4})-(\ d {2})-(\ d {2}), ganti dengan \ 3/\ 2/\ 1; 5. Penyusunan semula log boleh mengekstrak masa, tahap, ID dan maklumat lain

Soalan wawancara Java lanjutan terutamanya mengkaji pemahaman mekanisme dalaman JVM, pengaturcaraan serentak, penalaan prestasi, corak reka bentuk dan seni bina sistem. 1. Model Memori Java (JMM) mentakrifkan penglihatan, atomik dan susunan operasi memori antara benang. Kata kunci yang tidak menentu dan berlaku sebelum peraturan memastikan penyegerakan yang betul untuk mengelakkan masalah kemas kini yang disebabkan oleh cache CPU. G1GC sesuai untuk timbunan besar dan senario jeda yang boleh diramalkan. Kawasan yang mempunyai banyak sampah lebih disukai melalui kitar semula kawasan. ZGC menggunakan petunjuk teduhan dan memuatkan halangan untuk mencapai jeda tahap submillisecond, dan masa jeda adalah bebas daripada saiz timbunan, yang sesuai untuk sistem latency rendah. 2. Gunakan ConcurrentHashMap untuk merancang Cache LRU-Safe Thread

Pengendali ternary Python digunakan untuk secara ringkas melaksanakan penghakiman IF-else, dan sintaksinya adalah "value_if_trueif conditionelsevalue_if_false"; 1. Ia boleh digunakan untuk tugasan mudah, seperti mengembalikan rentetan yang sepadan berdasarkan nilai positif dan negatif; 2. Ia boleh mengelakkan kesilapan pembahagian, seperti menentukan bahawa penyebutnya bukan sifar dan kemudian pembahagian; 3. Ia boleh memilih kandungan mengikut syarat dalam format rentetan; 4. Ia boleh memberikan label kepada unsur -unsur yang berbeza dalam formula derivasi senarai; Harus diingat bahawa pengendali ini hanya sesuai untuk cawangan binari dan tidak boleh bersarang berbilang lapisan. Logik kompleks harus menggunakan struktur tradisional IF-ELIF-ELSE untuk memastikan kebolehbacaan.
