- Streams: PHP streams have some major issues - notifications not finished, the horrid http layer (can we PLEASE use a library?), object/class integration, filters and the filter api make people cry, horrific error handling - noise for noise sake and no way to retrieve useful errors and warnings, no curl wrapper anymore, internal api for the implementation is sad
- Extensions: some pecl <-> php swaps, all internal extensions MUST have ACTIVE maintainers or get punted, some OO apis for older extensions and killing some non useful (looking at you odbc) functionality, better test coverage of extensions
- Enums: either in spl or in core, an enum object for C style enums (or enums as a zval type, either works for me) - this is highly difficult to implement in userland, in ext/core you can make it act like an int with Moar features
- Unicode: a unicode string class - yes yes ugly in some ways, but could hold a wchar_t and char * cached of utf8, always act in utf8 when used a string in the majority of PHP cases
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
My bugs: | |
https://bugs.php.net/bug.php?id=54169 - I have a big patch for pdo_odbc in general | |
streams related issues: - | |
https://bugs.php.net/bug.php?id=54156 | |
https://bugs.php.net/bug.php?id=52811 - there are a ton more notification callback related issues - need MAJOR testing for that | |
https://bugs.php.net/bug.php?id=42387 - yes, this is also on my todo, could use most of the plumbing already in place for the notification callbacks |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Entity | |
{ | |
protected $model; | |
protected function initModel() { | |
$this->model = []; | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cairo.c | |
cairo_context.c | |
cairo_error.c | |
cairo_font.c | |
cairo_font_face.c | |
cairo_font_options.c | |
cairo_ft_font.c | |
cairo_image_surface.c | |
ext\cairo\cairo.c(618) : warning C4090: 'initializing' : different 'const' qualifiers | |
ext\cairo\cairo_font_options.c(77) : warning C4101: 'temp' : unreferenced local variable |
- Interfaces for streams wrappers (clean up apis) - primarily userland, small to no BC
- Resources -> objects (engine storage and attachment) - primarily core, some BC issues
- finish implementations for callbacks - primarily feature addition
- async IO features (see: jpauli) - feature addition with core implications and some BC issues
- curl:// stream wrapper - feature addition (functionality of --with-curl-wrappers but with curl:// as prefix)
- filtering api - buckets hard to use, user_filter class is api possessed - userland and BC
- factory registration for wrapper creation - feature addition
- ability to plug into transports from php land instead of requiring C extensions
Streams Interfaces:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Index: config.w32 | |
=================================================================== | |
--- config.w32 (revision 0) | |
+++ config.w32 (revision 0) | |
@@ -0,0 +1,8 @@ | |
+// $Id: config.w32 264053 2008-08-01 21:20:08Z pajoye $ | |
+// vim:ft=javascript | |
+ | |
+ARG_ENABLE("pcntl", "process control support", "no"); | |
+ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PHP7 is coming | |
And it's breaking all of our extensions | |
There are currently more changes to the internal apis than there are to things that users will see (and there are enough of those) | |
In fact not even all the extensions in php source proper are all the way PHP7'd - most of PECL and extensions hosted elsewhere haven't even started! Heck half don't have maintainers! | |
Extensions are also notorious for poor api design, poor testing, and non-existent docs | |
But they're also powerful, useful, and fast and more people should use them | |
PHP7 is coming - fast - and we have a chance to "break" things and to get the community interested and involved |
A quick snapshot of what is going on with the project - for the tl;dr see "what can I do?"
- A name- GoPHP7 is a project (not yet really started) to motivate people to migrate to PHP7 when it's released. This echoes the GoPHP5 project of the past
- An irc channel - registered on freenode - owner auroraeosrose, ops lornajane, ircmaxell and joepferguson
- A set of goals - see http://goo.gl/BJ3s8D
- Getting "adminy" stuff set up (lornajane is in charge) - This will include website, wikis, twitter, whatever, and other tools
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Basically a strict object with no methods | |
class Struct { | |
public $foo; | |
public $bar; | |
} | |
$struct = new Struct(['foo' => 'something']); // constructor args would get pushed to properties ??? | |
$struct->foo = 'whatever'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class Test { | |
public function foo() { | |
echo 'I am happy and called'; | |
} | |
} | |
$test = new Test(); | |
$test->foo = function() { echo 'dynamic'; }; |
OlderNewer