rfc:remove_zend_api
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
rfc:remove_zend_api [2009/04/05 19:33] – linkify pbiggar | rfc:remove_zend_api [2017/09/22 13:28] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Removal of the Zend API ====== | ====== Removal of the Zend API ====== | ||
- | * Version: 1.0 | + | * Version: 1.1 |
* Date: 2009-03-27 | * Date: 2009-03-27 | ||
* Author: Paul Biggar < | * Author: Paul Biggar < | ||
- | * Status: | + | |
===== Introduction ===== | ===== Introduction ===== | ||
- | This RFC provides a rationale for removing external | + | Currently, PHP's interpreter, |
- | See also php_native_interface. | + | This RFC does not describe how to remove access, and what to replace it with. That is described separately, in [[php_native_interface]]. The goals of this RFC are predicated on achieving the goals of [[php_native_interface]]. |
Line 28: | Line 28: | ||
The main problem with it is that it constrains the implementation of the Zend Engine. The Zend API creates a tight coupling between the Zend Engine and its clients, restricting greatly our ability to change the Zend Engine. By requiring backwards compatability with the Zend Engine, we are ensuring that the Zend Engine can only be modified in minor ways. This holds the Zend Engine to design decisions made nearly 10 years ago, and prevents PHP from getting much faster in the long term. | The main problem with it is that it constrains the implementation of the Zend Engine. The Zend API creates a tight coupling between the Zend Engine and its clients, restricting greatly our ability to change the Zend Engine. By requiring backwards compatability with the Zend Engine, we are ensuring that the Zend Engine can only be modified in minor ways. This holds the Zend Engine to design decisions made nearly 10 years ago, and prevents PHP from getting much faster in the long term. | ||
- | The Zend API also makes it difficult to write PHP extensions. Although most of the API is not terribly difficult to work with, concepts like copy-on-write, | + | The Zend API also makes it difficult to write PHP extensions. Although most of the API is not terribly difficult to work with, concepts like copy-on-write, |
A number of other PHP implementations exist, such as IBM's Project Zero, Phalanger, Roadsend, Quercus and phc. Many of these projects find it very difficult to re-use PHP's standard libraries. They have chosen different strategies: | A number of other PHP implementations exist, such as IBM's Project Zero, Phalanger, Roadsend, Quercus and phc. Many of these projects find it very difficult to re-use PHP's standard libraries. They have chosen different strategies: | ||
Line 37: | Line 37: | ||
- | A proposed replacement for the Zend API is described in php_native_interace. However, to actually solve this issue, a decision must be made to not only use the PHP Native Interface to provide an interface between extensions and implementations, | ||
+ | ===== How to proceed ====== | ||
- | ===== Project Plan ===== | + | A proposed replacement for the Zend API is described in [[php_native_interface]]. However, to actually solve this issue, a decision must be made to not only use the PHP Native Interface to provide an interface between |
- | + | ||
- | This is a simple design. In reality, it would need to be prototyped to determine whether | + | |
- | + | ||
- | * Follow the Project Plan in [[php_native_interface]] | + | |
- | * Convert all PHP extensions | + | |
- | + | ||
- | + | ||
- | Naturally, before | + | |
+ | This RFC is a means of achieving concensus on removing the Zend API in PHP 6, predicated on first achieving the goals in [[php_native_interface]]. | ||
rfc/remove_zend_api.1238960021.txt.gz · Last modified: 2017/09/22 13:28 (external edit)