Skip to content

Instantly share code, notes, and snippets.

@jlem
jlem / Dockerfile
Created February 1, 2020 15:02
Laravel Docker base image
FROM php:7.4-fpm
# Install dependencies
RUN apt-get update && apt-get install -y \
zlib1g-dev \
libxml2-dev \
libzip-dev \
libonig-dev \
unzip
@jlem
jlem / normalized.js
Last active December 27, 2018 22:35
Normalize inputs to dry up and flatten code structure
// Now the data you'll be working with will ALWAYS be an array, so you can plan for that.
// You still needed the conditional (a ternary in this case), but you've pushed it to the top of your code
// allowing all subsequent code to work with it in a more uniform way.
const normalizedData = Array.isArray(data) ? data : [data];
const transformedData = normalizedData.map(myTransformerFunction);
@jlem
jlem / functional_approach.php
Last active September 21, 2016 01:21
Content slugger
<?php
function makeSlug(Entity $entity)
{
return sprintf("%d-%s", $entity->getID(), str_slug($entity->getName()));
}
/*
Entity with ID 3343 and name of "This Is An Article About Code"
becomes 3343-this-is-an-article-about-code
@jlem
jlem / SomeServiceProvider.php
Created July 14, 2016 14:03
Getting the queries run on model save
<?php
// in service provider
public function boot()
{
// When the saving event fires on any model...
Event::listen(['eloquent.saving: *'], function() {
// Start listening for database queries...
DB::listen(function($query) {
@jlem
jlem / no_private_state.js
Last active November 11, 2015 21:13
Encapsulation in JS
class Person {
constructor(age) {
this.age = age;
}
}
let person = new Person(15);
person.age = -33;
// This lack of encapsulation and privacy is bad since it makes
@jlem
jlem / ControllerExample.php
Created October 27, 2015 19:38
Medium Laravel Article - leaky hybrid
<?php
DemonstrationController
{
public function createPost()
{
// validate request, create the post, and...
$member = Auth::user()->member();
$member->incrementPostCount();
@jlem
jlem / ControllerExample.php
Created October 27, 2015 19:35
Medium Laravel Article - leaky abstraction example
<?php
DemonstrationController
{
public function createPost()
{
// validate request, create the post, and...
$member = Auth::user()->getMember();
$member->posts++;
@jlem
jlem / ControllerExample.php
Last active October 27, 2015 19:39
Medium Laravel Article - Basic Usage
<?php
DemonstrationController
{
public function createPost(MemberRepositoryInterface $repository)
{
// validate request, create the post, and...
$member = Auth::user()->member();
$member->incrementPostCount();
@jlem
jlem / EloquentMemberRepository.php
Created October 27, 2015 19:29
Medium Laravel Article - EloquentMemberRepository.php
<?php
class EloquentMemberRepository implements MemberRepositoryInterface
{
/**
* @var Member
*/
protected $model;
@jlem
jlem / MemberRepositoryInterface.php
Created October 27, 2015 19:20
Medium Laravel Article - MemberRepositoryInterface.php
<?php
interface MemberRepositoryInterface
{
public function find($id);
public function findTopPosters($count = 10);
public function save(MemberInterface $member);
}