Skip to content

Instantly share code, notes, and snippets.

View tomschlick's full-sized avatar

Tom Schlick tomschlick

View GitHub Profile
<?php
// Input array
$user = array(
'name' => 'Bob Smith',
'age' => 43,
'address' => array(
'city' => 'Houston',
'state' => 'TX',
@tomschlick
tomschlick / gist:791999
Created January 23, 2011 11:23
This function allows you to dive into an array and provide a fallback value in case the element you want does not exist.
<?php
function array_element($array, $key, $default = false)
{
$key = explode('.', $key);
if(count($key) > 1)
{
if ( ! is_array($array) || ! array_key_exists($key[0], $array))
{
return $default;
@tomschlick
tomschlick / gist:792004
Created January 23, 2011 11:26
This function allows you to sort a php array by subelement values, this should be used in conjunction with the array_element function.
<?php
function array_sort($array, $key, $order = 'asc', $sort_flags = SORT_REGULAR)
{
if( ! is_array($array))
{
return FALSE;
}
foreach($array as $k=>$v)
@tomschlick
tomschlick / gist:3812085
Created October 1, 2012 14:23
FuelPHP 1.x Composer Support
@tomschlick
tomschlick / gist:3984898
Created October 31, 2012 05:02
Sublime Text 2 Keybindings to Resize Split Panes
[
{
"keys": ["super+alt+left"],
"command": "set_layout",
"args":
{
"cols": [0.0, 0.33, 1.0],
"rows": [0.0, 1.0],
"cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
}
@tomschlick
tomschlick / gist:3991627
Created November 1, 2012 04:01
Demo Composer File
{
"config": {
"vendor-dir": "fuel/vendor"
},
"minimum-stability": "dev",
"require": {
"php": ">=5.3.6",
"mexitek/phpcolors": "*",
"nategood/httpful": "*",
@tomschlick
tomschlick / gist:3991659
Created November 1, 2012 04:10
Composer Include in Fuelphp 1.x
// Composer
require dirname(COREPATH).'/vendor/autoload.php';
@tomschlick
tomschlick / gist:1397070
Created November 27, 2011 06:10
Conditional .htpasswd
#allows a single uri through the .htaccess password protection
SetEnvIf Request_URI "/testing_uri$" test_uri
#allows everything if its on a certain host
SetEnvIf HOST "^testing.yoursite.com" testing_url
SetEnvIf HOST "^yoursite.com" live_url
Order Deny,Allow
AuthName "Restricted Area"
AuthType Basic
Before posting this article I sent it out to a few friends to give me a reality check. I got enough thumbs up to feel confident posting it, but Chris Hartjes asked me to check outside for the "wahmbulance". I understand that this article is pointless, which to be fair - is the point.
PHP is well known for having an inconsistent API when it comes to PHP functions. Anyone with an anti-PHP point of view will use this as one of their top 3 arguments for why PHP sucks, while most PHP developers will point out that they don't really care. This is mostly because we're either used to it, have a god-like photographic memory or our IDE handles auto-complete so it's a moot point. For me I'm not too fussed because I spend more time trying Googling words like recepie (see, I got that wrong) recipe than I ever spend looking up PHP functions.
Another big thing that anti-PHP folks laugh about is the lack of scalar objects, so instead of $string->length() you have to do strlen($string).
ANOTHER thing that people often joke
@tomschlick
tomschlick / Initials Avatar
Created September 17, 2013 19:40
Simple example for creating an avatar based on the user's initials and a background color
<?php
$string = 'TS';
$imagine = new Imagine\Gd\Imagine();
$size = new Imagine\Image\Box($imgsize, $imgsize);
$color = new Imagine\Image\Color('#333', 100);
$image = $imagine->create($size, $color);