Skip to content

Commit

Permalink
PHP Benelux HHVM/PHP talk
Browse files Browse the repository at this point in the history
  • Loading branch information
derickr committed Jan 26, 2016
1 parent 75ad6c6 commit cb4962e
Show file tree
Hide file tree
Showing 4 changed files with 134 additions and 4 deletions.
131 changes: 131 additions & 0 deletions phphhvm-phpbnl16.xml
@@ -0,0 +1,131 @@
<?xml version="1.0" encoding="utf-8"?>
<presentation css="10gen-strict.css">
<topic>MongoDB</topic>
<title>One Extension, Three Engines</title>
<event>PHP Benelux 2016</event>
<location>Edegem, Belgium</location>
<date>Jan 30th, 2016</date>
<speaker>Derick Rethans</speaker>
<email>derick@mongodb.com</email>
<twitter>derickr</twitter>
<url>http://derickrethans.nl/talks.html</url>
<joindin>https://joind.in/talk/ebb31</joindin>
<slide>slides/mongodb/one-ext-two-engines.xml</slide>
<slide>slides/mongodb/me.xml</slide>

<slide>slides/mongodb/1e2e-agenda.xml</slide>
<slide>slides/mongodb/1e3e-agenda.xml</slide>

<!-- HISTORY of the DRIVER -->
first driver (0.8.4) april 2009
- used resources and classes (for types code/date/id/regex/bindata only)
- only very basic crud operations:
static function_entry mongo_functions[] = {
PHP_FE( mongo_connect , NULL )
PHP_FE( mongo_close , NULL )
PHP_FE( mongo_remove , NULL )
PHP_FE( mongo_query , NULL )
PHP_FE( mongo_insert , NULL )
PHP_FE( mongo_batch_insert , NULL )
PHP_FE( mongo_update , NULL )
PHP_FE( mongo_has_next , NULL )
PHP_FE( mongo_next , NULL )
PHP_FE( mongo_gridfs_init , NULL )
PHP_FE( mongo_gridfs_store , NULL )
PHP_FE( mongo_gridfile_write , NULL )
{NULL, NULL, NULL}
- many existing functionality through PHP based classes

jun 2012 - Hannes starts helping out properly
aug 2012 - merge in new connection handling (no more connection pools) 1.3.0alpha1
- we start using sane branches with git
sep 2012 - jeremy starts doing the odd patches
nov 2012 - 1.3!

<slide>slides/mongodb/driver-current-status.xml</slide>

<!-- NEW GOALS -->

- Easier to maintain
- Easier to prototype
- Support other engines without redoing it all

<slide>slides/mongodb/new-driver-goals.xml</slide>

<!-- THE ENGINES -->
<slide>slides/mongodb/the-engines.xml</slide>

<!-- PHP 5 -->
<slide>slides/mongodb/engines-php5.xml</slide>

<!-- HHVM -->
<slide>slides/mongodb/engines-hhvm.xml</slide>

<!-- PHP 7 -->
<slide>slides/mongodb/engines-php7.xml</slide>


<!-- NEW ARCHITECTURE -->

libbson, libmongoc, Hippo, Phongo and Phplib (flip?)
Other packages on top (GridFS)
Composer

<slide>slides/mongodb/new-architecture.xml</slide>

- MongoDB vs Mongo extension

<slide>slides/mongodb/libbson.xml</slide>
<slide>slides/mongodb/libmongoc.xml</slide>

<slide>slides/mongodb/phongo.xml</slide>
<slide>slides/mongodb/new-driver-bc2.xml</slide>
<slide>slides/mongodb/api-old.xml</slide>
<slide>slides/mongodb/api-new.xml</slide>

<slide>slides/mongodb/hippo.xml</slide>
<slide>slides/mongodb/hippo-impl-def.xml</slide>
<slide>slides/mongodb/hippo-impl.xml</slide>
<slide>slides/mongodb/hippo-impl-2.xml</slide>
<slide>slides/mongodb/hippo-vs-phongo.xml</slide>

<slide>slides/mongodb/api-new.xml</slide>
<slide>slides/mongodb/api-phongo.xml</slide>
<slide>slides/mongodb/api-hippo.xml</slide>
<slide>slides/mongodb/api-serialization-spec.xml</slide>

- PHP 7...

<slide>slides/mongodb/phongo-php5-7.xml</slide>

<slide>slides/mongodb/phplib.xml</slide>
<slide>slides/mongodb/phplib-usage-2.xml</slide>

<!-- ISSUES -->

- APIs changing in Phongo meant that things had to be redone for Hippo
- Namespaces for drivers, exception and bson classes

<slide>slides/mongodb/moving-target.xml</slide>

HHVM is not mature, and certainly not documented.

- Slow going, mention the hhvm cookbook
- issues with cursor and foreach iteration

<slide>slides/mongodb/hhvm-maturity.xml</slide>

<!-- CURRENT STATUS -->

Phongo in alpha (0.6.3)
Hippo in pre-alpha (but you can do all basic ops)
phplib (as mongodb/mongodb) on packagist: https://packagist.org/packages/mongodb/mongodb (0.2.0)

<slide>slides/mongodb/new-current-status.xml</slide>
<slide>slides/mongodb/ghost-bug.xml</slide>
<slide>slides/mongodb/new-still-to-do.xml</slide>

<slide>slides/mongodb/resources.xml</slide>


</presentation>
Binary file added slides/mongodb/ghost.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion slides/mongodb/moving-target.xml
Expand Up @@ -4,7 +4,6 @@
<image filename="moving-target.jpg" align="right" />

<list>
<bullet>Phongo has been release as 1.0.0</bullet>
<bullet>%MongoDB\Driver\RuntimeException% → %MongoDB\Driver\Exception\RuntimeException%</bullet>
<bullet>Namespace "arguments":<br/>%MongoDB\BSON\Binary% vs. %BSON\Binary%</bullet>
<bullet>Changes in result types:<br/>%CommandResult% and %QueryResult% → %Result%</bullet>
Expand Down
6 changes: 3 additions & 3 deletions slides/mongodb/new-current-status.xml
Expand Up @@ -2,9 +2,9 @@
<title>Current status</title>

<list>
<bullet>phongo has been released as 1.0.0<br/>%pecl install mongodb%</bullet>
<bullet>hippo has a release candidate<br/>%https://github.com/mongodb-labs/mongo-hhvm-driver-prototype/releases/tag/1.0.0RC1%</bullet>
<bullet>phplib in alpha state (1.0.0-alpha1)<br/>%https://packagist.org/packages/mongodb/mongodb%</bullet>
<bullet>phongo has been released as 1.1.0<br/>%pecl install mongodb%</bullet>
<bullet>hippo has a release candidate<br/>%https://github.com/mongodb-labs/mongo-hhvm-driver-prototype/releases/tag/1.1.0RC1%</bullet>
<bullet>phplib has been released as 1.0.0<br/>%https://packagist.org/packages/mongodb/mongodb%</bullet>
</list>

<image filename="elephpant-beer.jpg"/>
Expand Down

0 comments on commit cb4962e

Please sign in to comment.