php的扩展和嵌入--总纲
初步接触了php开发以及php扩展的相关内容,发现extending and embeded php这本书很不错,很多问题也讲的非常透彻。这里把读到的一些书中的内容和自己的实践结合起来展示一下,既是给自己留档,也是抛砖引玉,期待php大牛的指导。
extending and embeded php这本书还有一个中文版,有些东西新一些,也可以参考下:
http://www.walu.cc/phpbook/preface.md
这本书主要讲两个方面:
-
如何通过添加函数、类、资源和流的方式来扩展php
- 如何把php语言嵌入到其他应用中去
那么为什么需要php扩展呢?:
- 连接额外的库,并以api的形式提供给用户空间的脚本。比如被封装好的mysql
-
- 是在第三方的库和php的核心之间提供一种扩展,因此php被称为是胶水语言
- 进行特殊的内部操作,比如声明超级变量,用户空间因为安全原因是有限制的。比如php的advanced php debugger 和runkit主要就是干这个的
- 速度原因:令牌化、编译、运行,Opcode可以缩减前两步,但是执行这一步的话还是变成C code比较好。
-
在不暴露出源码的情况下提供功能
下图中给出了php的总体结构:
其中各部分模块的功能如下:
SAPI:是跟web server的接口层 PHP Core:对于核心事件的连接层,处理类似于文件处理、错误处理这类操作 Zend Engine:把脚本编译成机器语言,执行bytecode,读入写出用户空间变量,控制程序流,解析扩展。 TSRM:thread safe resource management:使得一个单个的php实例具有能够同时处理很多独立的请求的能力 这本书分成了三个部分,第一个部分是对php的重新介绍,主要叙述了php的解释器如何黏合在一起。第二个部分则主要在讲php的扩展,所涉及的方面如下:
- PHP API 一些php内部的函数和宏
- 如何把php脚本转换成c code:每个php的脚本的背后都牵涉到了c语言的相应处理,这种对应关系对扩展的开发十分有用
- 执行那些用户空间不可能的操作:很多时候需要执行一些类似于超级变量这种在用户态无法完成的动作,这个时候需要利用扩展进行相应的处理。
而第三个部分则是叙述如何把php嵌入到相应的应用中去:
- 首先是给应用加上相应的php支持
- 其次是充分利用php相应的安全特性
- 最后则是说明php如何同时处理多个请求 由于刚刚开始学习php,所以一些错误再所难免,请一定指正。

Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

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



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
