MailCatcher is a Ruby gem that acts as a sendmail/postfix replacement and displays outgoing emails in a friendly web GUI. It is useful if you want to run someone else’s code and be sure of what emails are being sent.
Here’s how to use it with PHP and Laravel Homestead.
Continue reading “Installing MailCatcher in Laravel Homestead”
You may want to add a default configuration file to Git so that if someone else picks up the code they only have to enter their particular details – however once you’ve configured it yourself you don’t want those changes tracked.
The solution is to use:
git update-index --assume-unchanged path/to/file
To check which files in your repo are marked in that way use:
git ls-files -v | grep ^[a-z]
Run the command below to install CodeIgniter via Composer. This may be useful if GitHub has an outage and you can’t download a zipped version of the source.
composer require codeigniter/framework
You will then need to look in
vendor/codeigniter/framework for the usual folder structure.
We all have days like this one:
ngrok can be used to provide access to a local homestead or vagrant site remotely i.e. to a client.
You need to use header rewriting to work with the homestead configuration, the syntax for using a single site looks like:
ngrok http -host-header=rewrite mysite.app:80
If you have multiple sites then you will need to use ngrok with a config file, stored in
~/.ngrox.config.yml. The docs are vague on how to do the rewriting in the config file so here it is for reference:
Note that host header rewriting doesn’t work nicely with cookies which seriously limits this.
I was asked to do a coding test to create a basic blog. I decided to to use CodeIgniter 3.1 (yes – it’s not dead as was widely reported a few years ago) because I’ve been working with it recently. CodeIgniter may not be as fashionable as Laravel but it is considerable smaller and will run fast on a small/cheap server, it is also quick and easy to learn how to use it.
My source code is available on BitBucket if anyone is interested to take a look: https://bitbucket.org/richardwo/coding-test-blog-ci. There are 2 controllers for users and posts, 3 models for categories, posts and users, 5 admin view files and 3 front-end view files. Overall it took me about 4.5 hours.
Some other PHP Frameworks like CakePHP or Laravel can include registration and authentication by running a few commands. This would have saved me a lot of time because I had to write my own login system and it took a while.
I also ran into some issues with redirects because I was running using the PHP built-in webserver trying to make the application self contained – after some investigation it turns out I needed
$config['base_url'] = 'http://localhost:8000/'; in
application/config/config.php for the redirects to work properly.
More time was wasted writing the usual CRUD methods and creating Bootstrap forms (even if this is only a cut/paste job). CakePHP scaffolding / Code Generation with Bake would have saved more time (although out of the box it doesn’t use Bootstrap).
On a more positive side, I did like the validators where using
'is_unique[posts.slug]' will automatically check that table/field for you and return an error if it’s already been used.
Next time I’ve got to do this I’ll use Laravel as it seems more popular than CakePHP and I’ll benefit from the nice extras this has to offer over CodeIgniter. However I could just reuse my authentication code and save time.