1. Need to use require.js to load a bunch of scripts compiled via assetic into a PHP file, annoyed by auto-append of .js, don’t want to set up irritating routing? Add a ? to the URL, require.js will add a .js to the query string, loading the file correctly.

  2. Turns out that performing a GET request on a data URI from PHP works if file_get_contents is used, not if cURL is used. I wonder what support is like for other server side languages — using data URIs in with could be the basis of some interesting .

  3. New CRUD fetcher/saver design coming on well. Decided on per-semantic-indexing, with abstract indexes and APIs so I never have to think about the SQL under the logic (which I do with ORMs like Doctrine).

    Implementing the whole lot using traits, too — mixins FTW.

  4. Finally decided that symfony Security component is way too complicated for my little , so ditching it — but I’ve learnt a lot from digging through it and my further efforts will try to provide some of the amazing flexibility it gives whilst being more performant and easier to understand #php

  5. Aral Balkan: Sexist? Want to learn PHP? We’ve got just the book for you: SexyPHP: A Fun Way to Learn Object Oriented PHP http://t.co/nz1650vr

    aral hideous. That makes me more embarrassed to be a PHP dev than all the bad rep it has as a language. And they're teaching SVN! It gets worse :(

  6. I love that now has shiny namespacing and a thriving code sharing community, but I think the heavily hierarchical namespacing practises used by some of the community (e.g. symfony components) are unhealthy.

    They are difficult to memorise, relying on (often slow) IDE autocomplete, and encourage a use statement for each class. That’s pretty much a scoped equivalent of from x import * in python — not a good practise! It’s still namespace pollution, it just takes longer to write.

    I am trying to use a more python–like, package-centred approach with much fewer subnamespaces. The outcome of this should be that you use the package name:

    use BarnabyWalters
osse;

    …and then using all the classes/subnamespaces from that root, e.g: $t = Posse\Helpers::convertHtmlToTwitterFormat($s);

  7. Doing a mass find-and-replace operation on the Perch Blog app so I can have more than one running at the same time. If you want to do something similar, here are the strings you need to replace:

    • blogyourName
    • BlogYourName
    • perch_blogyourPrefix_yourName
    • PerchBlogYourName

    And then obviously rename the .class.php files and activate as you would any other app.