mirror of
https://github.com/php/presentations.git
synced 2026-03-23 23:22:22 +01:00
158 lines
5.2 KiB
XML
158 lines
5.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<presentation
|
|
template="css"
|
|
navmode="html"
|
|
navbarbackground="#4373b4"
|
|
navbartopiclinks="0"
|
|
navColor="#f1fbff"
|
|
logo1=""
|
|
stylesheet="presentations/slides/ezc/ez.css"
|
|
backgroundfixed="1" >
|
|
<topic>Debugging</topic>
|
|
<title>PHP Extensions - What and Why</title>
|
|
<event>ZendCon</event>
|
|
<location>Santa Clara, US</location>
|
|
<date>Oct 17th, 2011</date>
|
|
<speaker>Derick Rethans</speaker>
|
|
<email>derick@derickrethans.nl</email>
|
|
<twitter>derickr</twitter>
|
|
<url>http://derickrethans.nl/talks.html</url>
|
|
<joindin>http://joind.in/3776</joindin>
|
|
<slide>slides/dbus/title.xml</slide>
|
|
<slide>slides/toolbox/me.xml</slide>
|
|
|
|
<slide>slides/internals/extension-on-a-slide.xml</slide>
|
|
|
|
<slide>slides/internals/config-m4-1.xml</slide>
|
|
<slide>slides/internals/config-m4-2.xml</slide>
|
|
<slide>slides/internals/config-m4-3.xml</slide>
|
|
<slide>slides/internals/config-m4-4.xml</slide>
|
|
<slide>slides/internals/config-m4-5.xml</slide>
|
|
<slide>slides/internals/config-m4-6.xml</slide>
|
|
<slide>slides/internals/config-w32-1.xml</slide>
|
|
|
|
<!--
|
|
So you've heard that PHP supports extensions. But what are they exactly, what
|
|
can you do with them, and what *can't* you do with them? And mostly, why would
|
|
you or would you not want to spend time writing them?
|
|
|
|
This session will introduce you into what PHP extensions are, and what they can
|
|
do for you. It will cover cases of when it makes sense to write extensions and
|
|
which things you need to think of when deciding whether you want to put the
|
|
effort into writing an extension.
|
|
|
|
The talk then proceeds with a small introduction to the request cycle and PHP's
|
|
memory management. It mentions which parts of PHP you could override and which
|
|
parts you can hook into. It will also cover things that you can not do with
|
|
extensions.
|
|
|
|
examples
|
|
core ext
|
|
internal ext
|
|
external ext
|
|
pecl
|
|
zend ext
|
|
|
|
functions
|
|
classes
|
|
ini settings
|
|
|
|
hooks
|
|
- startup, shutdown
|
|
|
|
overloading:
|
|
- errors
|
|
- compile
|
|
- execute
|
|
- replacing functions
|
|
|
|
stream filters
|
|
- phar
|
|
- encryption
|
|
|
|
|
|
|
|
no syntax change
|
|
- british php
|
|
|
|
why:
|
|
- wrapping libraries
|
|
- fast, specific extensions
|
|
- replacing PHP functions
|
|
-->
|
|
<slide>slides/internals/extensions.xml</slide>
|
|
<slide>slides/internals/core-extensions.xml</slide>
|
|
<slide>slides/internals/internal-extensions.xml</slide>
|
|
<slide>slides/internals/external-extensions.xml</slide>
|
|
<slide>slides/internals/pecl.xml</slide>
|
|
<slide>slides/internals/overview.xml</slide>
|
|
<slide>slides/internals/overview2.xml</slide>
|
|
|
|
<slide>slides/internals/functions.xml</slide>
|
|
<slide>slides/internals/init-shutdown.xml</slide>
|
|
<slide>slides/internals/ini-entries.xml</slide>
|
|
<slide>slides/internals/request-init-shutdown.xml</slide>
|
|
<slide>slides/internals/request-post-deactivate.xml</slide>
|
|
<slide>slides/internals/shutdown-order.xml</slide>
|
|
<slide>slides/internals/function-entry.xml</slide>
|
|
<slide>slides/internals/globals.xml</slide>
|
|
|
|
<slide>slides/internals/classes-etc.xml</slide>
|
|
<slide>slides/internals/class-setup.xml</slide>
|
|
<slide>slides/internals/class-setup2.xml</slide>
|
|
<slide>slides/internals/some-notes.xml</slide>
|
|
<slide>slides/internals/class-methods.xml</slide>
|
|
<slide>slides/internals/function-method-duality.xml</slide>
|
|
<slide>slides/internals/arg-info.xml</slide>
|
|
<slide>slides/internals/extension-dependencies.xml</slide>
|
|
<slide>slides/internals/questions.xml</slide>
|
|
|
|
<!-- variables -->
|
|
<slide>slides/internals/zval.xml</slide>
|
|
<slide>slides/internals/variables1.xml</slide>
|
|
<slide>slides/internals/variables2.xml</slide>
|
|
<slide>slides/internals/variables3.xml</slide>
|
|
<slide>slides/internals/variables3a.xml</slide>
|
|
<slide>slides/internals/variables11.xml</slide>
|
|
<slide>slides/internals/zend_parse_parameters.xml</slide>
|
|
<slide>slides/internals/zend_parse_parameters2.xml</slide>
|
|
<slide>slides/internals/returning_variables.xml</slide>
|
|
<slide>slides/internals/returning_variables_array.xml</slide>
|
|
<slide>slides/internals/returning_variables_object.xml</slide>
|
|
<slide>slides/internals/excercise_intro.xml</slide>
|
|
<slide>slides/internals/excercise_add_a_function.xml</slide>
|
|
<slide>slides/internals/valgrind-and-debugging.xml</slide>
|
|
<slide>slides/internals/questions.xml</slide>
|
|
|
|
<!-- more advanced stuff -->
|
|
<slide>slides/internals/hooks.xml</slide>
|
|
<slide>slides/internals/minfo.xml</slide>
|
|
<slide>slides/internals/overload.xml</slide>
|
|
<slide>slides/internals/hooks-error.xml</slide>
|
|
<slide>slides/internals/hooks-exception.xml</slide>
|
|
<slide>slides/internals/hooks-compiler-executor.xml</slide>
|
|
<slide>slides/internals/opcodes-question.xml</slide>
|
|
|
|
<slide>slides/internals/execute5.xml</slide>
|
|
<slide>slides/internals/opcode2.xml</slide>
|
|
<slide>slides/internals/execute2.xml</slide>
|
|
<slide>slides/internals/opcode-cache.xml</slide>
|
|
|
|
<slide>slides/internals/opcode-overload2.xml</slide>
|
|
<slide>slides/internals/hooks-opcode.xml</slide>
|
|
|
|
<slide>slides/internals/replacing-functions.xml</slide>
|
|
<slide>slides/internals/hooks-replace-function.xml</slide>
|
|
<slide>slides/internals/streams.xml</slide>
|
|
<slide>slides/internals/syntax-changes.xml</slide>
|
|
|
|
<slide>slides/internals/why-wrapping-libs.xml</slide>
|
|
<slide>slides/internals/why-fast-specific.xml</slide>
|
|
<slide>slides/internals/why-replace-php.xml</slide>
|
|
<slide>slides/internals/why-not-possible.xml</slide>
|
|
|
|
<slide>slides/internals/questions.xml</slide>
|
|
<slide>slides/internals/resources.xml</slide>
|
|
|
|
</presentation>
|