Pustaka kelas pihak ketiga
Perpustakaan kelas pihak ketiga merujuk kepada perpustakaan kelas lain selain rangka kerja ThinkPHP dan perpustakaan kelas projek aplikasi Ia biasanya disediakan oleh sistem atau produk pihak ketiga, seperti perpustakaan kelas Smarty, Zend dan sistem lain.
Untuk perpustakaan kelas yang diimport lebih awal menggunakan pemuatan automatik atau kaedah import, konvensyen ThinkPHP adalah menggunakan .class.php kerana akhiran bukan sedemikian perlu dikawal melalui parameter import.
Tetapi untuk perpustakaan kategori ketiga, kerana tidak ada perjanjian sedemikian, akhirannya hanya boleh dianggap sebagai php. Untuk memperkenalkan perpustakaan kelas dengan mudah daripada rangka kerja dan sistem lain, ThinkPHP secara khusus menyediakan fungsi mengimport perpustakaan kelas pihak ketiga. Perpustakaan kelas pihak ketiga diletakkan secara seragam di bawah direktori/Vendor sistem ThinkPHP dan diimport menggunakan kaedah vendor.
Kaedah vendor
Tatabahasa:
boolenvendor(class,baseUrl,ext)
Perihalan parameter:
Perihalan parameter
Kelas diperlukan, menunjukkan perpustakaan kelas akan diimport, dalam bentuk ruang nama.
baseUrl adalah pilihan, menunjukkan laluan asas import Jika ditinggalkan, sistem menggunakan direktori sistem ThinkPHP/direktori Vendor.
ext adalah pilihan, menunjukkan akhiran perpustakaan kelas yang diimport, lalai ialah .php.
Perbezaan daripada kaedah import ialah laluan import lalai kaedah vendor ialah direktori sistem ThinkPHP/direktori Vendor, dan akhiran lalai ialah .php.
Perkongsian pengalaman peribadi:
Apabila kami ingin memperkenalkan sambungan pihak ketiga ke dalam ThinkPHP, dan sambungan pihak ketiga tidak ditulis mengikut spesifikasi ThinkPHP, kami perlu meletakkan sambungan pihak ketiga dalam direktori Perpustakaan/Vendor Sudah tentu, ini untuk ThinkPHP3 .2 Dalam erti kata lain, versi yang lebih rendah bergantung kepada keadaan.
Kemudian apabila anda perlu menggunakan sambungan pihak ketiga dalam Pengawal atau fungsi, anda boleh terus menggunakan kaedah vendor() untuk merujuknya.
Struktur direktori perpustakaan pihak ketiga:
?Digunakan dalam fungsi fungsi:
Kaedah pertama:
Vendor('Phpqrcode.phpqrcode');
Salin kod
Salin kod
/**
*Jana kod QR
*sambungan @paramstring$urlurl
*@paraminteger$size saiz nombor tulen
,*/
functionqrcode($url,$size=4){
Vendor('Phpqrcode.phpqrcode');
?if(strpos($url,'http')===false){
?$url='http://'.$url;
?}
QRcode::png($url,false,QR_ECLEVEL_L,$size,2,false,0xFFFFFF,0x000000);
?}
Salin kod
Salin kod
Kaedah kedua:
memerlukan'./ThinkPHP/Library/Org/Nx/class.phpmailer.php';
memerlukan'./ThinkPHP/Library/Org/Nx/class.smtp.php';
Salin kod
Salin kod
/**
*Hantar e-mel
*@paramstring$address Alamat e-mel yang akan dihantar ke berbilang alamat perlu ditulis dalam bentuk tatasusunan
*@paramstring$tajuk subjek
*@paramstring$kandungan kandungan
*@returnboolean berjaya
,*/
?functionsend_email($address,$subject,$content){
?$email_smtp=C('EMAIL_SMTP');
?$email_username=C('EMAIL_USERNAME');
?$email_password=C('EMAIL_PASSWORD');
?$email_from_name=C('EMAIL_FROM_NAME');
?if(kosong($email_smtp)||kosong($email_username)||kosong($email_kata laluan)||kosong($email_from_name)){
returnarray("error"=>1,"message"=>'Konfigurasi peti mel tidak lengkap');
?}
memerlukan'./ThinkPHP/Library/Org/Nx/class.phpmailer.php';
memerlukan'./ThinkPHP/Library/Org/Nx/class.smtp.php';
?$phpmailer=newPhpmailer();
//Sediakan PHPMailer untuk menggunakan pelayan SMTP untuk menghantar e-mel
?$phpmailer->IsSMTP();
//Tetapkan kepada format html
?$phpmailer->IsHTML(true);
//Tetapkan pengekodan aksara e-mel'
?$phpmailer->CharSet='UTF-8';
//Sediakan pelayan SMTP.
?$phpmailer->Host=$email_smtp;
//Tetapkan kepada "Memerlukan pengesahan"
?$phpmailer->SMTPauth=true;
//Tetapkan nama pengguna
?$phpmailer->Username=$email_username;
//Tetapkan kata laluan
?$phpmailer->Kata Laluan=$email_password;
//Tetapkan medan Daripada pengepala e-mel.
?$phpmailer->From=$email_username;
//Tetapkan nama pengirim
?$phpmailer->FromName=$email_from_name;
//Tambah alamat penerima, yang boleh digunakan berbilang kali untuk menambah berbilang penerima
?if(is_array($address)){
?foreach($addressas$addressv){
?$phpmailer->AddAddress($addressv);
?}
?}lain{
?$phpmailer->AddAddress($address);
?}
//Tetapkan tajuk e-mel
?$phpmailer->Subject=$subject;
//Tetapkan badan e-mel
?$phpmailer->Body=$content;
//Hantar e-mel.
?jika(!$phpmailer->Hantar()){
?$phpmailererror=$phpmailer->ErrorInfo;
returnarray("error"=>1,"message"=>$phpmailererror);
?}lain{
returnarray("error"=>0);
?}
?}
Salin kod
Salin kod
Kaedah ketiga:
Struktur direktori perpustakaan Alipay
vendor('Alipay.AlipaySubmit','','.class.php');
Nota: Akhiran lalai yang dimuatkan oleh Vendor ialah .php
Parameter 1: Diperlukan, menunjukkan perpustakaan kelas untuk diimport, menggunakan kaedah ruang nama
Parameter 2: Pilihan, menunjukkan laluan asas import Jika ditinggalkan, sistem menggunakan direktori sistem ThinkPHP/direktori Vendor.
Parameter tiga: Pilihan, menunjukkan akhiran perpustakaan kelas yang diimport, lalai ialah .php.
Kod kes pihak ketiga Alipay:
Salin kod
Salin kod
/**
* Lompat ke Alipay untuk membayar
*Data pesanan @paramarray$order mesti termasuk out_trade_no (nombor pesanan), harga (jumlah pesanan), subjek (tajuk nama produk)
,*/
functionalipay($order){
vendor('Alipay.AlipaySubmit','','.class.php');
//Dapatkan konfigurasi
?$config=C('ALIPAY_CONFIG');
?$data=array(
"_input_charset"=>$config['input_charset'],//Format pengekodan
"logistics_fee"=>"0.00",//Logistics fee
"logistics_payment"=>"SELLER_PAY", //Kaedah pembayaran Logistik SELLER_PAY (penjual menanggung barang), BUYER_PAY (pembeli menanggung barang)
"logistics_type"=>"EXPRESS",//Logistic type EXPRESS (express), POST (surface mail), EMS (EMS)
"notify_url"=>$config['notify_url'],//Pautan untuk menerima pemberitahuan status pembayaran secara tidak segerak
"out_trade_no"=>$order['out_trade_no'],//Nombor pesanan
"partner"=>$config['partner'],//Partner diperoleh daripada Pusat Peribadi Versi Merchant Alipay
"payment_type"=>"1",//Jenis pembayaran sepadan dengan parameter payment_type dalam permintaan dan dikembalikan seperti sedia ada. Hanya tetapkan kepada 1
"price"=>$order['price'],//Unit harga pesanan ialah yuan
//"price"=>0.01,////Pelarasan harga digunakan untuk ujian
"kuantiti"=>"1",//harga dan kuantiti boleh menggantikan jumlah_yuran. Iaitu, jika jumlah_bayaran wujud, harga dan kuantiti tidak boleh wujud jika harga dan kuantiti wujud, jumlah_bayaran tidak boleh wujud. (Saya tidak faham; okey; abaikan sahaja parameter ini)
"receive_address"=>'1',//Alamat penerima dikreditkan serta-merta, abaikan sahaja parameter ini
"receive_mobile"=>'1',//Abaikan sahaja kaedah pembayaran segera nombor telefon mudah alih penerima
"receive_name"=>'1',//Abaikan sahaja kaedah pembayaran segera nama penerima
"receive_zip"=>'1',//Anda boleh mengabaikan kaedah ketibaan segera kod pos penerima
"return_url"=>$config['return_url'], //Laluan halaman pemberitahuan penyegerakan lompat halaman Selepas Alipay memproses permintaan, halaman semasa secara automatik melompat ke laluan http halaman yang ditentukan dalam tapak web pedagang.
"seller_email"=>$config['seller_email'],//e-mel diperoleh daripada Pusat Peribadi Versi Merchant Alipay
"service"=>"create_direct_pay_by_user", //Nama antara muka ditetapkan untuk create_direct_pay_by_user
"show_url"=>$config['show_url'], //URL paparan produk, hiperpautan untuk paparan produk pada halaman pembayaran.
"subject"=>$order['subject']//Nama produk, tajuk produk/tajuk transaksi/tajuk pesanan/kata kunci pesanan, dsb.
);
?$alipay=newAlipaySubmit($config);
?$new=$alipay->buildRequestPara($data);
?$go_pay=$alipay->buildRequestForm($new,'get','pay');
echo$go_pay;
?}
Salin kod
Salin kod
Walau bagaimanapun, apabila saya meletakkan PHPMailer dalam direktori Vendor, ia berjalan dengan baik pada mesin ini Baru-baru ini, apabila saya memuat naik program ke pelayan, ia secara langsung menggesa Kelas "PHPMailer" tidak ditemui dan kemudian menjalankannya pada mesin ini sekali lagi, dan ia adalah. masih betul! Seperti yang anda boleh tahu dari blog sebelum ini, saya menggunakan vendor('PHPMailer.class#PHPMailer');
Barisan kod ini memperkenalkan PHPMailer. Memandangkan ia menggesa bahawa kelas PHPMailer tidak dapat ditemui, ini bermakna ia belum diperkenalkan dengan betul. kenapa ni?
Saya melihat sepintas lalu pada kod sumber kaedah vendor(), dan mendapati bahawa kaedah vendor() sebenarnya memasang parameter kaedah import() dan kemudian menyerahkannya kepada kaedah import() untuk diproses. Melihat pada kod sumber kaedah import(), kami mendapati bahawa dalam kaedah import(), analisis parameter masuk di atas sebenarnya untuk menggantikan ’.’ dengan ’/’ dan ’#&rsquo ; dengan’.’, baseurl ditambah secara automatik oleh kaedah vendor(), menunjuk ke direktori Vendor. Jadi parameter dalam kaedah vendor() di atas akhirnya dihuraikan ke dalam direktori berikut:
?Library/Vendor/PHPMailer/class.PHPMailer.php
Alamat direktori sebenar fail kemasukan PHPMailer ialah:
?Library/Vendor/phpmailer/class.phpmailer.php
Kandungannya sama! Walau bagaimanapun, saya menggunakan pelayan Linux, jadi kes itu dibezakan dengan ketat, jadi sudah tentu saya tidak boleh berjaya mengimport kelas ini. Penyelesaiannya ialah memperkenalkan vendor() dan menukarnya kepada:
vendor(‘phpmailer.class#phpmailer’)
Di samping itu, anda harus memberi perhatian kepada satu perkara apabila menggunakan PHPMailer Jika PHPMailer menggunakan SMTP untuk menghantar e-mel, PHP perlu menyokong fsockopen, jadi kami perlu mengubah suai disable_functions dalam php.ini untuk memadam fscokopen, jika tidak, ralat berjalan akan berlaku:
?fsockopen()telah dilumpuhkan
Ia boleh diperolehi melalui atribut ErrorInfo PHPMailer!
Atas ialah kandungan terperinci Cara mengimport perpustakaan pihak ketiga dalam ThinkPHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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)

Untuk menjalankan projek ThinkPHP, anda perlu: memasang Komposer untuk mencipta projek, masukkan direktori projek dan laksanakan php bin/console serve;

ThinkPHP mempunyai berbilang versi yang direka untuk versi PHP yang berbeza. Versi utama termasuk 3.2, 5.0, 5.1 dan 6.0, manakala versi kecil digunakan untuk membetulkan pepijat dan menyediakan ciri baharu. Versi stabil terkini ialah ThinkPHP 6.0.16. Apabila memilih versi, pertimbangkan versi PHP, keperluan ciri dan sokongan komuniti. Adalah disyorkan untuk menggunakan versi stabil terkini untuk prestasi dan sokongan terbaik.

Langkah-langkah untuk menjalankan ThinkPHP Framework secara setempat: Muat turun dan nyahzip ThinkPHP Framework ke direktori tempatan. Buat hos maya (pilihan) yang menunjuk ke direktori akar ThinkPHP. Konfigurasikan parameter sambungan pangkalan data. Mulakan pelayan web. Mulakan aplikasi ThinkPHP. Akses URL aplikasi ThinkPHP dan jalankannya.

Perbandingan prestasi rangka kerja Laravel dan ThinkPHP: ThinkPHP umumnya berprestasi lebih baik daripada Laravel, memfokuskan pada pengoptimuman dan caching. Laravel berfungsi dengan baik, tetapi untuk aplikasi yang kompleks, ThinkPHP mungkin lebih sesuai.

Langkah pemasangan ThinkPHP: Sediakan persekitaran PHP, Komposer dan MySQL. Buat projek menggunakan Komposer. Pasang rangka kerja dan kebergantungan ThinkPHP. Konfigurasikan sambungan pangkalan data. Hasilkan kod aplikasi. Lancarkan aplikasi dan lawati http://localhost:8000.

ThinkPHP ialah rangka kerja PHP berprestasi tinggi dengan kelebihan seperti mekanisme caching, pengoptimuman kod, pemprosesan selari dan pengoptimuman pangkalan data. Ujian prestasi rasmi menunjukkan bahawa ia boleh mengendalikan lebih daripada 10,000 permintaan sesaat, dan digunakan secara meluas dalam tapak web dan sistem perusahaan berskala besar seperti JD.com dan Ctrip dalam aplikasi praktikal.

Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk pembangunan API Dengan pembangunan berterusan Internet, kepentingan API (Antara Muka Pengaturcaraan Aplikasi) telah menjadi semakin menonjol. API ialah jambatan untuk komunikasi antara aplikasi yang berbeza Ia boleh merealisasikan perkongsian data, panggilan fungsi dan operasi lain, dan menyediakan pembangun kaedah pembangunan yang agak mudah dan pantas. Sebagai rangka kerja pembangunan PHP yang sangat baik, rangka kerja ThinkPHP adalah cekap, berskala dan mudah digunakan.

"Cadangan Pembangunan: Cara Menggunakan Rangka Kerja ThinkPHP untuk Melaksanakan Tugas Asynchronous" Dengan perkembangan pesat teknologi Internet, aplikasi Web mempunyai keperluan yang semakin tinggi untuk mengendalikan sejumlah besar permintaan serentak dan logik perniagaan yang kompleks. Untuk meningkatkan prestasi sistem dan pengalaman pengguna, pembangun sering mempertimbangkan untuk menggunakan tugas tak segerak untuk melaksanakan beberapa operasi yang memakan masa, seperti menghantar e-mel, memproses muat naik fail, menjana laporan, dsb. Dalam bidang PHP, rangka kerja ThinkPHP, sebagai rangka kerja pembangunan yang popular, menyediakan beberapa cara mudah untuk melaksanakan tugas tak segerak.
