John’s PHP Extension library

Note to self: my PHP extension is here: jj5@tact:/home/jj5/repo/git/git.php.net/php-src/ext/pext

The .so file (shared object) is in modules/pext.so

I linked it in like this:

-------------------
Sun May 23 13:44:22
root@tact:/usr/lib/php/20170718
# ln -s /home/jj5/repo/git/git.php.net/php-src/ext/pext/modules/pext.so .
-------------------

Configured it like this:

-------------------
Sun May 23 13:44:47
root@tact:/usr/lib/php/20170718
# cat /etc/php/7.2/cli/conf.d/pext.ini

extension=pext.so

-------------------

And I can build it like this:

-------------------
Sun May 23 13:51:37
jj5@tact:/home/jj5/repo/git/git.php.net/php-src/ext/pext
$ make clean && make

Do you need to call PDOStatement::closeCursor when you’re done with the statement?

The answer is no, so long as you’re not preparing to execute the statement again. I figured this out by looking at the code for PDOStatement::closeCursor and the MySQL implementation. Seems to me that all the freeing necessary is done in the destructor so if you’re not planning to use the statement again it seems to me that you can safely omit the call to PDOStatement::closeCursor(). On the other hand if you are going to reuse the statement calling closeCursor seems like it’s a pretty important thing to do. It would be nice if PDOStatement::fetchAll() called closeCursor() for us, but I don’t think it does.