Skip to content

Instantly share code, notes, and snippets.

Avatar
💭
nerding

Simon Hamp simonhamp

💭
nerding
View GitHub Profile
@simonhamp
simonhamp / WebhookController.php
Created Jul 8, 2020
Handling Typeform Webhooks in Laravel
View WebhookController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class WebhookController
{
public function create(Request $request)
{
View StachePrimeCommand.php
<?php
namespace Statamic\Addons\MyAddon\Commands;
use Statamic\API\Stache;
use Statamic\Extend\Command;
class StachePrimeCommand extends Command
{
/**
@simonhamp
simonhamp / quotes.md
Last active Apr 23, 2019
Some quotes and their sources
View quotes.md

"A lot of times, you open up some code for something simple like this, and you find that it is just a massive tangle of unnecessary structure and indirection."

Casey Muratori 2014-05-28 (Retrieved 2018-05-18)

"Frameworks are not tools for organising your code, they are tools for organising your mind."

Rich Harris Code Camp 2019 (Retrieved 2019-04-23)

@simonhamp
simonhamp / AppServiceProvider.php
Last active Oct 22, 2020
Laravel: Str::csvToArray macro
View AppServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\Str;
class AppServiceProvider extends ServiceProvider
{
public function boot()
@simonhamp
simonhamp / VersionMatcher.php
Created Jan 18, 2018
A simple SemVer parser/matcher
View VersionMatcher.php
<?php
class VersionMatcher
{
protected $specificity = 'major';
protected $originals = [];
protected $current;
protected $target;
protected static $padDigits;
@simonhamp
simonhamp / BaseModel.php
Last active Mar 25, 2020
Eloquent: Simple Model Event Handling
View BaseModel.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class BaseModel extends Model
{
/**
* Override the default boot method to register some extra stuff for every child model.
@simonhamp
simonhamp / list.php
Last active Mar 11, 2020
Using list() in foreach in PHP
View list.php
<?php
$items = [
['field' => 'field1', 'values' => [0, 1, 2, 3, 4]],
['field' => 'field2', 'values' => ['cat', 'dog', 'horse']]
];
foreach ($items as list('field' => $field, 'values' => $values)) {
// can use $field and $values here now!
}
@simonhamp
simonhamp / RemoteArtisan.php
Last active Apr 23, 2019
RemoteArtisan: A way to call another Laravel/Lumen application's artisan command from the context of the current application.
View RemoteArtisan.php
<?php
namespace App;
use Dotenv\Dotenv;
use Illuminate\Support\Str;
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;
class RemoteArtisan
@simonhamp
simonhamp / AuthorizationTest.php
Created Dec 10, 2017
Laravel Testing: Ensure your controllers enforce authorization
View AuthorizationTest.php
<?php
namespace App\Tests;
use Illuminate\Support\Facades\Route;
class AuthorizationTest extends TestCase
{
public function setUp()
{
View str_common.php
<?php
/**
* Return the common parts from 2 strings.
*
* @param string $str1
* @param string $str2
* @param bool $from_end
* return string
*/
You can’t perform that action at this time.