This sure looks like required reading for anyone looking at supporting/writing PHP extensions: http://www.phpinternalsbook.com/.
Questions I Really Need to Ask Someone Else
1. Multi-platform testing. The bug list is written against various different operating systems and versions (of course). I’ve never done a Windows build, so that’s surely a blind spot. How might I best test extensions in a Windows environment? Do we have procedures/setups for testing multiple platforms? For the record, I run Windows 7 on my Mac under VMWare Fusion. I may have better information once I’ve installed and played with the Rasmus build.
2. I have not yet found the pecl-specific IRC channel. I’ve found #phpmentoring and #gophp7-ext. Ah. It’s on Eris Free Net, not Freenode.
Questions I Should Be Able to Answer Myself
Answers to the following should be self evident once I look. These are my reminders to do so.
1. How do I participate in bug list discussions? I would assume that I need to get an account.
2. How do I update documentation? I would assume that I need to get an account, and it’s likely to be the same account as for bug lists.
3. What mailing lists should I get on?
Links to Some of the Answers
Here is a collection of links as I catch them. They may well hold answers to above questions.
The PDO extension… that might be an interesting extension to get to know thoroughly, along with whatever MySQL driver sits underneath it. Since where I work is a PHP/MySQL shop with large enterprise database usage, I should think it would be in my company’s best interest to have this knowledge in-house as well. I had already planned on learning a lot more in the way of MySQL design, tuning, and internals. The PHP driver might just be an interesting place to start.
An excuse to dive back into C-based device driver development and/or support, all in the name of PHP… how cool is that? Nice!
The bug list does appear substantial. Bookmark: PHP Bug tracker for PDO and friends.
A generation ago, the standard answer to any Unix question was “read the man page.” Before I explain how this relates to learning PHP Internals and about PHP Extensions, I should explain what a man page even is! The old school answer would be, “read the ‘man’ man page.” These days it’s explained on Wikipedia: http://en.wikipedia.org/wiki/Man_page.
On Unix, and to a large extent Linux, most everything is documented in the man pages: Command usage, library usage, system calls, header files, utilities, even (eventually) some tutorials.
Unix (and therefore Linux) and arrogance go together. Larry Wall, the creator of Perl, calls it hubris, and declares it to be a mandatory trait. Time after time, the standard (and correct) answer is “It’s in the man page.” It may take you several days to figure out which man page to go read; that fact was both assumed and expected. No self respecting Unix guru will waste his or her time with someone incapable of figuring out which man page to read; and all Unix gurus are self respecting.
Dilbert, 20 years ago, learned it this way: http://dilbert.com/strip/1995-06-24. The comic is so spot-on that the standard modern text on deep-down Unix programming has the comic on the book’s front cover (see above right)! There’s a third edition out, so if you follow my link, be sure to flip to the more recent edition before you buy the book. If you need to program with pthreads, named pipes, and other Unix/Linux system calls, you’ll be familiar with that book.
So what does this have to do with PHP Extensions? Bear with me; we’re getting there.
The slide deck is here: http://www.slideshare.net/auroraeosrose/php-extensions-45834933. Elizabeth Smith’s talk page for the event is here: https://joind.in/talk/view/13836.
On the right hand column of the slide share page is a list of related slide decks, with several on PHP extensions and PHP internals.
This was my first-ever PHP conference, gathering, or meet-up. I intended to keep an open mind and hope for the best. Fortunately, I was pleasantly surprised.
For the past many months, I’ve been reflecting on “software craftsmanship.” I’ve studied numerous ways to improve my practice of the art. Does “software craftsmanship” even apply to the PHP world? The published books generally refer to the Java world, for example, the Clean Code series by “Uncle Bob” Martin.
In the PHP world, where does Software Craftsmanship or a Pursuit of Excellence fit in the paradigm of getting the code into production? What’s important? What is not?
I’m coming to realize that I am not asking the right question.