Are you over 18 and want to see adult content?
More Annotations
A complete backup of crochetncrafts.com
Are you over 18 and want to see adult content?
A complete backup of bathandbodyworks.com
Are you over 18 and want to see adult content?
A complete backup of everytimezone.com
Are you over 18 and want to see adult content?
A complete backup of johnmasters-select.jp
Are you over 18 and want to see adult content?
A complete backup of centerforecotechnology.org
Are you over 18 and want to see adult content?
Favourite Annotations
A complete backup of universodestiny.com
Are you over 18 and want to see adult content?
A complete backup of finestquotes.com
Are you over 18 and want to see adult content?
A complete backup of sonicstadium.org
Are you over 18 and want to see adult content?
A complete backup of geocachingtoolbox.com
Are you over 18 and want to see adult content?
A complete backup of gareth-coker.net
Are you over 18 and want to see adult content?
A complete backup of bompenteados.com
Are you over 18 and want to see adult content?
Text
list.
PRETTY PRINT CURL -I Solution 2: A simple script to pipe the output through. Another way to do it is via a script that knows where the body starts. We can write this in PHP and it can automatically pretty print XML for us too: Save this as as /usr/local/prettyprint, make it executable with chmod a+w /usr/bin/prettyprint and you’re good to go: THE BEGINNER’S GUIDE TO CONTRIBUTING TO A GITHUB PROJECT This is a guide to contributing to an open source project that uses GitHub. It’s mostly based on how I’ve seen Zend Framework, Slim Framework and joind.in operate. However, this is a general guide so check your project’s README for specifics.ROUTING IN SLIM 4
RECEIVING INPUT INTO A SLIM 4 APPLICATION Let’s start with a simple Slim 4 application. Firstly we require the Slim framework and a PSR-7 implementation: This is the standard minimal Slim 4 application, which will respond solely to the / URL (i.e. the home page of the website) and will return an empty THROW AN EXCEPTION WHEN SIMPLEXML_LOAD_STRING FAILS Thanks for the code! I think it makes a lot of sense to use exceptions. There are two things I would like to suggest: * Use a more detailed exception: either "UnexpectedValueException", or maybe your custom XMLException (based on RunTimeException). FIRST STEPS WITH WINDOWS ON VAGRANT One thing that would be useful for one of my projects is an easy way to install IIS, PHP & SQL Server on Windows in a repeatable way. I wasn’t sure how to do this until I came across Chocolatey and Boxstarter.Chocolatey is a package manager for Windows along the same lines as yum and apt for Linux and knows how to install a remarkableamount of software.
GLOBAL INSTALLATION OF PHP TOOLS WITH COMPOSER The Composer package manager along with the Packagist repository site is quickly becoming the defacto PHP package management system.. One feature I found out about recently is that you can install packages globally rather than locally into your project. I think that this is most useful for development tools, such as PHPUnit which are then available everywhere. CREATING VIRTUAL ENVIRONMENTS WITH PYENV Use pyenv versions to see what’s installed.. We can now set a given version as our system-wide python with pyenv global, however, it’s much more useful to set up isolated environments and use them.. Create day-to-day environments. Separate environments, known as virtualenvs or venvs, isolate an app and its dependencies from another one. RETRIEVING A LIST OF DATABASES FROM SQL SERVER Rob Allen is a sofware consultant and developer concentrating on HTTP APIs. He develops in PHP, Python and other interesting languages, contributing to rst2pdf, Slim Framework, Apache OpenWhisk amongst other OSS projects. Based in Worcester, UK, he runs Nineteen Feet and is the author of Zend Framework in Action. PREVENT AN EXTERNAL DRIVE FROM AUTO MOUNTING ON MACOS To prevent a drive auto mounting on macOS, you add a line to /etc/fstab like this: UUID= {UUID} none {TYPE} rw,noauto. 1. UUID= {UUID} none {TYPE} rw,noauto. To obtain the UUID and TYPE, you can use diskutil info {device identifier} and look up the Volume UUID and Type (Bundle) values. You can look up the {disk identifier} using diskutillist.
PRETTY PRINT CURL -I Solution 2: A simple script to pipe the output through. Another way to do it is via a script that knows where the body starts. We can write this in PHP and it can automatically pretty print XML for us too: Save this as as /usr/local/prettyprint, make it executable with chmod a+w /usr/bin/prettyprint and you’re good to go: THE BEGINNER’S GUIDE TO CONTRIBUTING TO A GITHUB PROJECT This is a guide to contributing to an open source project that uses GitHub. It’s mostly based on how I’ve seen Zend Framework, Slim Framework and joind.in operate. However, this is a general guide so check your project’s README for specifics.ROUTING IN SLIM 4
RECEIVING INPUT INTO A SLIM 4 APPLICATION Let’s start with a simple Slim 4 application. Firstly we require the Slim framework and a PSR-7 implementation: This is the standard minimal Slim 4 application, which will respond solely to the / URL (i.e. the home page of the website) and will return an empty THROW AN EXCEPTION WHEN SIMPLEXML_LOAD_STRING FAILS Thanks for the code! I think it makes a lot of sense to use exceptions. There are two things I would like to suggest: * Use a more detailed exception: either "UnexpectedValueException", or maybe your custom XMLException (based on RunTimeException). FIRST STEPS WITH WINDOWS ON VAGRANT One thing that would be useful for one of my projects is an easy way to install IIS, PHP & SQL Server on Windows in a repeatable way. I wasn’t sure how to do this until I came across Chocolatey and Boxstarter.Chocolatey is a package manager for Windows along the same lines as yum and apt for Linux and knows how to install a remarkableamount of software.
GLOBAL INSTALLATION OF PHP TOOLS WITH COMPOSER The Composer package manager along with the Packagist repository site is quickly becoming the defacto PHP package management system.. One feature I found out about recently is that you can install packages globally rather than locally into your project. I think that this is most useful for development tools, such as PHPUnit which are then available everywhere. PREVENT AN EXTERNAL DRIVE FROM AUTO MOUNTING ON MACOS To obtain the UUID and TYPE, you can use diskutil info {device identifier} and look up the Volume UUID and Type (Bundle) values. You can look up the {disk identifier} using diskutil list.. For a clone of macOS that’s Catalina or more recent, there are two volumes that make up the one logical volume: the main read-only volume and also the “- Data” volume which contains everything that’s PSR-7 FILE UPLOADS IN SLIM 3 Handling file uploads in Slim 3 is reasonably easy as it uses the PSR-7 Request object, so let’s take a look.. The easiest way to get a Slim framework project up and running is to use the Slim-Skeleton tocreate a project:
VIEW HEADER AND BODY WITH CURL When developing APIs, I prefer to use curl to view the output of a request like this: -v is for verbose and so you get told all the information you could possibly want. However, usually, I only want to know the response’s headers and body. Enter the -i switch! Muchbetter! Include the
DEPENDENCY INJECTION IN SLIM 4 In contrast with Slim 2 and Slim 3, Slim 4 does not ship with a DI container, but instead, supports any PSR-11 compatibly DI container that you provide. This is part of Slim 4’s commitment to interoperability via the PHP-FIG standards.. The easiest way to add a container to your Slim application is to call AppFactory::setContainer() before you call AppFactory::create(). GLOBAL INSTALLATION OF PHP TOOLS WITH COMPOSER The Composer package manager along with the Packagist repository site is quickly becoming the defacto PHP package management system.. One feature I found out about recently is that you can install packages globally rather than locally into your project. I think that this is most useful for development tools, such as PHPUnit which are then available everywhere. TESTING MIGRATING TO LAMINAS Zend Framework is renaming to Laminas and all the source code is moving to a new GitHub organisation. Implicitly this means a new PHP top level namespace. As you can imagine, this implies that a lot of our code will need to change, so Matthew, Michał and the team have been writing migration tooling to make this easier.. It’s now time to test it and they need all the help they can get on ROB ALLEN'S DEVNOTES 16. activate application "NotificationCenter". tell application "System Events". tell process "NotificationCenter". set theWindow to group 1 of UI element 1 of scroll area 1 of window "Notification Center". # click theWindow. set theActions to actions of theWindow. repeat with theAction in theActions. TESTING MY ZF1 APP ON PHP 7 Zend Framework 1 is still actively maintained and we fully intend to ensure that ZF1 works with no problems on PHP 7 when its released.. Now that PHP 7.0.0 Alpha 1 has been released, it’s time to find out if your Zend Framework 1 app works with it.The easiest way to do this is to use a virtual machine. My preference is Vagrant with Rasmus’PHP7dev box.
GIT PUSH TO MULTIPLE REPOSITORIES I now have a remote called all that will push to both repositories!. There’s no automatic way to go the other way and fetch from multiple repositories though as apparently it makes less sense to fetch the same branch identifier from multiple places.SUBSTR_IN_ARRAY
I would actually prefer a foreach based implementation because it can return as soon as an match is found. That may count as micro-optimisation in PREVENT AN EXTERNAL DRIVE FROM AUTO MOUNTING ON MACOS To prevent a drive auto mounting on macOS, you add a line to /etc/fstab like this: UUID= {UUID} none {TYPE} rw,noauto. 1. UUID= {UUID} none {TYPE} rw,noauto. To obtain the UUID and TYPE, you can use diskutil info {device identifier} and look up the Volume UUID and Type (Bundle) values. You can look up the {disk identifier} using diskutillist.
RETRIEVING A LIST OF DATABASES FROM SQL SERVER Rob Allen is a sofware consultant and developer concentrating on HTTP APIs. He develops in PHP, Python and other interesting languages, contributing to rst2pdf, Slim Framework, Apache OpenWhisk amongst other OSS projects. Based in Worcester, UK, he runs Nineteen Feet and is the author of Zend Framework in Action. CREATING VIRTUAL ENVIRONMENTS WITH PYENV Use pyenv versions to see what’s installed.. We can now set a given version as our system-wide python with pyenv global, however, it’s much more useful to set up isolated environments and use them.. Create day-to-day environments. Separate environments, known as virtualenvs or venvs, isolate an app and its dependencies from another one. FIRST STEPS WITH WINDOWS ON VAGRANT One thing that would be useful for one of my projects is an easy way to install IIS, PHP & SQL Server on Windows in a repeatable way. I wasn’t sure how to do this until I came across Chocolatey and Boxstarter.Chocolatey is a package manager for Windows along the same lines as yum and apt for Linux and knows how to install a remarkableamount of software.
SETTING UP IBM CLOUD OBJECT STORAGE For a little website that I’m writing, I thought that I’d use IBM Cloud Object Storage (equivalent to AWS S3) as I’m generating the pages using OpenWhisk on IBM Cloud Functions.The documentation is quite good if you want to use the website, but is a bit spread all over the place if you’re using the command line, which is how I do things.. As Cloud Object Storage is a bit of a mouthfulROUTING IN SLIM 4
THROW AN EXCEPTION WHEN SIMPLEXML_LOAD_STRING FAILS Thanks for the code! I think it makes a lot of sense to use exceptions. There are two things I would like to suggest: * Use a more detailed exception: either "UnexpectedValueException", or maybe your custom XMLException (based on RunTimeException). PRETTY PRINT CURL -I Solution 2: A simple script to pipe the output through. Another way to do it is via a script that knows where the body starts. We can write this in PHP and it can automatically pretty print XML for us too: Save this as as /usr/local/prettyprint, make it executable with chmod a+w /usr/bin/prettyprint and you’re good to go: RECEIVING INPUT INTO A SLIM 4 APPLICATION Let’s start with a simple Slim 4 application. Firstly we require the Slim framework and a PSR-7 implementation: This is the standard minimal Slim 4 application, which will respond solely to the / URL (i.e. the home page of the website) and will return an empty SYNCING MACOS KEYCHAIN CERTIFICATES WITH HOMEBREW’SMACOS INSTALL OPENSSLMACOS INSTALL OPENSSL DEV Rob Allen is a sofware consultant and developer concentrating on HTTP APIs. He develops in PHP, Python and other interesting languages, contributing to rst2pdf, Slim Framework, Apache OpenWhisk amongst other OSS projects. Based in Worcester, UK, he runs Nineteen Feet and is the author of Zend Framework in Action. PREVENT AN EXTERNAL DRIVE FROM AUTO MOUNTING ON MACOS To prevent a drive auto mounting on macOS, you add a line to /etc/fstab like this: UUID= {UUID} none {TYPE} rw,noauto. 1. UUID= {UUID} none {TYPE} rw,noauto. To obtain the UUID and TYPE, you can use diskutil info {device identifier} and look up the Volume UUID and Type (Bundle) values. You can look up the {disk identifier} using diskutillist.
RETRIEVING A LIST OF DATABASES FROM SQL SERVER Rob Allen is a sofware consultant and developer concentrating on HTTP APIs. He develops in PHP, Python and other interesting languages, contributing to rst2pdf, Slim Framework, Apache OpenWhisk amongst other OSS projects. Based in Worcester, UK, he runs Nineteen Feet and is the author of Zend Framework in Action. CREATING VIRTUAL ENVIRONMENTS WITH PYENV Use pyenv versions to see what’s installed.. We can now set a given version as our system-wide python with pyenv global, however, it’s much more useful to set up isolated environments and use them.. Create day-to-day environments. Separate environments, known as virtualenvs or venvs, isolate an app and its dependencies from another one. FIRST STEPS WITH WINDOWS ON VAGRANT One thing that would be useful for one of my projects is an easy way to install IIS, PHP & SQL Server on Windows in a repeatable way. I wasn’t sure how to do this until I came across Chocolatey and Boxstarter.Chocolatey is a package manager for Windows along the same lines as yum and apt for Linux and knows how to install a remarkableamount of software.
SETTING UP IBM CLOUD OBJECT STORAGE For a little website that I’m writing, I thought that I’d use IBM Cloud Object Storage (equivalent to AWS S3) as I’m generating the pages using OpenWhisk on IBM Cloud Functions.The documentation is quite good if you want to use the website, but is a bit spread all over the place if you’re using the command line, which is how I do things.. As Cloud Object Storage is a bit of a mouthfulROUTING IN SLIM 4
THROW AN EXCEPTION WHEN SIMPLEXML_LOAD_STRING FAILS Thanks for the code! I think it makes a lot of sense to use exceptions. There are two things I would like to suggest: * Use a more detailed exception: either "UnexpectedValueException", or maybe your custom XMLException (based on RunTimeException). PRETTY PRINT CURL -I Solution 2: A simple script to pipe the output through. Another way to do it is via a script that knows where the body starts. We can write this in PHP and it can automatically pretty print XML for us too: Save this as as /usr/local/prettyprint, make it executable with chmod a+w /usr/bin/prettyprint and you’re good to go: RECEIVING INPUT INTO A SLIM 4 APPLICATION Let’s start with a simple Slim 4 application. Firstly we require the Slim framework and a PSR-7 implementation: This is the standard minimal Slim 4 application, which will respond solely to the / URL (i.e. the home page of the website) and will return an empty SYNCING MACOS KEYCHAIN CERTIFICATES WITH HOMEBREW’SMACOS INSTALL OPENSSLMACOS INSTALL OPENSSL DEV Rob Allen is a sofware consultant and developer concentrating on HTTP APIs. He develops in PHP, Python and other interesting languages, contributing to rst2pdf, Slim Framework, Apache OpenWhisk amongst other OSS projects. Based in Worcester, UK, he runs Nineteen Feet and is the author of Zend Framework in Action. CREATING VIRTUAL ENVIRONMENTS WITH PYENV Use pyenv versions to see what’s installed.. We can now set a given version as our system-wide python with pyenv global, however, it’s much more useful to set up isolated environments and use them.. Create day-to-day environments. Separate environments, known as virtualenvs or venvs, isolate an app and its dependencies from another one. VIEW HEADER AND BODY WITH CURL When developing APIs, I prefer to use curl to view the output of a request like this: -v is for verbose and so you get told all the information you could possibly want. However, usually, I only want to know the response’s headers and body. Enter the -i switch! Muchbetter! Include the
ROUTING TO A CONTROLLER WITH SLIM 2 In a couple of projects that I’ve written using Slim Framework 2, I’ve found it beneficial to organise my code into controllers with injected dependencies; probably because that’s how I’m used to working with ZF2.. To make this easier, I’ve written an extension to the main Slim class and packaged it into rka-slim-controller which will dynamically instantiate controllers for you for USING ELOQUENT IN SLIM FRAMEWORK From this point, you can simply follow the documentation to create your Eloquent models and use them within your route callables.. Testing your models. At first glance, it seems quite hard to test your models as the find method is a static.. For example, consider SYNCING MACOS KEYCHAIN CERTIFICATES WITH HOMEBREW’S Rob Allen is a sofware consultant and developer concentrating on HTTP APIs. He develops in PHP, Python and other interesting languages, contributing to rst2pdf, Slim Framework, Apache OpenWhisk amongst other OSS projects. Based in Worcester, UK, he runs Nineteen Feet and is the author of Zend Framework in Action. DEFAULT ROUTE ARGUMENTS IN SLIM This will display “Hello ” for the URL /hello and “Hello Rob” for the URL /hello/Rob.. If we wanted a default of “World”, we can set an argument on the Route object that is returned from get() (and all the other routing methods): DEBUGGING PHP SOAP OVER SSL USING CHARLES On OS X, you simply do: Help -> SSL Proxying -> Install Charles Root Certificate. Proxy -> SSL Proxying Settings: Check Enable SSL Proxying. Add the endpoint’s domain to the list of locations. Finally, I needed to tell SoapClient to trust Charles’ root certificate so that it can decrypt the SSL traffic. This is done bydownloading the
TESTING MY ZF1 APP ON PHP 7 Zend Framework 1 is still actively maintained and we fully intend to ensure that ZF1 works with no problems on PHP 7 when its released.. Now that PHP 7.0.0 Alpha 1 has been released, it’s time to find out if your Zend Framework 1 app works with it.The easiest way to do this is to use a virtual machine. My preference is Vagrant with Rasmus’PHP7dev box.
THE BEGINNER’S GUIDE TO REBASING YOUR PR 1. $ git rebase --continue. 3. Push your newly rebased branch to origin. Finally, all you need to do is push your branch back to origin. Note that this will require a force push and you’ve probably been told to never do such a thing. This is the one exception toSUBSTR_IN_ARRAY
I would actually prefer a foreach based implementation because it can return as soon as an match is found. That may count as micro-optimisation in Rob Allen's DevNotes Developing software in the Real World* Home
* Hire me!
* Talks
* Slim
* ZF
* OpenWhisk
* Kitura Tutorial
* Archives
* About
CANNOT FIND ZLIB HEADERS ON MACOS 10.15 CATALINA My new MacBook Pro 16" comes with Catalina and while setting up Python to develop rst2pdf, I discovered that Pillow wouldn't install. Running setup.py install for pillow ... error ERROR: Command errored out with exit status 1:1
2
Running setup.py install for pillow ... error ERROR: Command errored out with exit status 1: Looking through the long list of red text I came across: The headers or library files could not be found for zlib, a required dependency when compiling Pillow from source.1
2
The headers or library files could not be found for zlib, a required dependency when compiling Pillow from source. Aha! The way this was solved on the previous version of macOS (Mojave) was to use the macOS_SDK_headers_for_macOS_10.14.pkg installer to set up symlinks to header files from the old place to the new place. This doesn't work on Catalina, so… continue reading.
Posted on 27 November 2019 in Python, rst2pdf
Leave a comment
CHANGING AN SQL SERVER PRIMARY KEY IN DOCTRINE MIGRATIONS I recently came across a rather weird quirk when trying to change a primary key in Sql Server using Doctrine Migrations: you need to use two migrations to get it to work. This is incredibly minor and I'm only writing it up as it confused me for a while so I thought that I'd document so that I'll find this article if I run across it again in the future! This is the migration: final class Version20191023125629 extends AbstractMigration { public function up(Schema $schema) : void { $table = $schema->getTable('page_category'); $table->dropPrimaryKey(); $table->setPrimaryKey(); } public function down(Schema $schema) : void { $table = $schema->getTable('page_category'); $table->dropPrimaryKey(); $table->setPrimaryKey(); } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
final class Version20191023125629 extends AbstractMigration{
public function up(Schema $schema) : void{
$table = $schema->getTable('page_category'); $table->dropPrimaryKey(); $table->setPrimaryKey();}
public function down(Schema $schema) : void{
$table = $schema->getTable('page_category'); $table->dropPrimaryKey(); $table->setPrimaryKey();}
}
… continue reading.
Posted on 20 November 2019 in PHPLeave a comment
FIRST STEPS WITH WINDOWS ON VAGRANT One thing that would be useful for one of my projects is an easy way to install IIS, PHP & SQL Server on Windows in a repeatable way. I wasn't sure how to do this until I came across Chocolatey and Boxstarter. Chocolatey is a package manager for Windows along the same lines as yum and apt for Linux and knows how to install a remarkable amount of software. Boxstarter is a way to automate… continuereading .
Posted on 14 November 2019 in Software, Windows
Leave a comment
TESTING MIGRATING TO LAMINAS Zend Framework is renaming to Laminas and all the source code is moving to a new GitHub organisation. Implicitly this means a new PHP top level namespace. As you can imagine, this implies that a lot of our code will need to change, so Matthew, Michał and the team have been writing migration tooling to make this easier. It's now time to test it and they need all the help they can get on real-world…continue reading .
Posted on 6 November 2019 in Laminas, PHP
, Zend Framework
One comment so far
EMBEDDING NOTIST SLIDES This site uses WordPress under the hood as I find the flexibility that a good CMS provides quite useful. For the talks section, I use a custom post type so that I can set additional properties on the post and customise the display. With my usual lack of imagination, my custom post type is called talk. When Notist was released, I've been uploading the PDFs for my presentations there so that I have a nicely… continue reading.
Posted on 30 October 2019 in PHP , WordPress Leave a comment HTML ENCODE SELECTED TEXT ON MAC When writing blog posts, I write directly in HTML, mostly from habit and because I've not set up mark-up text processing on WordPress. I'm comfortable enough with simple HTML that it's never seemed important enough to sort out, especially with MarsEdit's macros for common HTML tags. One thing that I need to do relatively regularly is to HTML encode code snippets for use in andtags. I have been doing this via a… continue reading.
Posted on 23 October 2019 in Computing, Keyboard Maestro
, MarsEdit
Leave a comment
CUSTOM ERROR RENDERING IN SLIM 4 One of the nice things about Slim 4 is that it's easier to customise the HTML generated on error without having to worry about the rest of the error handling mechanism. This is because we have separated error rendering from error handling. Slim's default ErrorHandler maintains a list of renderers, one for each content-type and will delegate the creation of the error payload (HTML, JSON, XML, etc) to the renderer. Out of the Box, the… continue reading.
Posted on 16 October 2019 in PHP , Slim Framework , Slim Framework 4 View all6 comments
FOLDER TYPES IN APPLESCRIPT I've recently moved to Adobe Lightroom Classic for photo editing, but am still using Apple Photos for viewing my photos on my iPhone and iPad. As such, I wanted an easy way to import photos exported from Lightroom into Photos, so I turned to AppleScript. My requirements are that I want to import all the photos in each sub-folder of a root folder called "ToPhotos" into Folders and Albums in Photos that are a child… continue reading.
Posted on 9 October 2019 in AppleScriptLeave a comment
DEPENDENCY INJECTION IN SLIM 4 In contrast with Slim 2 and Slim 3, Slim 4 does not ship with a DI container, but instead, supports any PSR-11 compatibly DI container that you provide. This is part of Slim 4's commitment to interoperability via the PHP-FIG standards. The easiest way to add a container to your Slim application is to call AppFactory::setContainer() before you call AppFactory::create(). The setContainer() method expects any PSR-11 container. Register the container with Slim Let's look at… continue reading.
Posted on 2 October 2019 in PHP , Slim Framework , Slim Framework 4 View all3 comments
RUNNING SLIM 4 IN A SUBDIRECTORY If you want to run Slim 4 in a subdirectory of your website, then you have a few things you need to do. Let's consider the situation: Your main website is in the directory /var/www/html and is accessed at https://example.com/. You want your new Slim 4 app to be in the directory /var/www/html/myapp and to be accessed at https://example.com/myapp. Your Slim 4 index.php file is stored in /var/www/html/myapp. There are two things you need to… continuereading .
Posted on 26 September 2019 in PHP, Slim Framework
, Slim Framework 4
One comment so far
* Older
*
Rob Allen is a sofware consultant and developer concentrating on HTTP APIs. He develops in PHP, Python and other interesting languages, contributing to rst2pdf , Slim Framework , Apache OpenWhisk amongst other OSS projects. Based in Worcester, UK, he runs Nineteen Feet and is the author of Zend Framework in Action.
Around the web:
Framing Focus blog
Twitter: @akrabat
Instagram: akrabaticFlickr: photos
GitHub: Rob Allen
IRC: akrabat on freenodeSEARCH
OTHER PAGES
* Zend Framework Training* ZF1 Tutorial
* ZF2 Tutorial
* Shorter Links WP plugin* Akra's Diary
* License for code on this site* Disclosure policy
* Privacy policy
BOOKS I'VE WRITTEN
* Disclosure policy
* License for code on this site* Entries RSS
*
Copyright © 2005-2019 Rob Allen. All rights reserved.
Details
Copyright © 2024 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0