Defining Eloquent model (will assume that DB table named is set as plural of class name and primary key named "id"):
class Shop extends Eloquent {}
Using custom table name
protected $table = 'my_shops';
# to generate your dhparam.pem file, run in the terminal | |
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048 |
# | |
# CORS header support | |
# | |
# One way to use this is by placing it into a file called "cors_support" | |
# under your Nginx configuration directory and placing the following | |
# statement inside your **location** block(s): | |
# | |
# include cors_support; | |
# | |
# As of Nginx 1.7.5, add_header supports an "always" parameter which |
#!/bin/sh | |
printf "Switching php to version 5.6 with symlinks.\n" | |
printf "Press any key to continue...\n" | |
read CONTINUE | |
printf "Creating backups..." | |
# Backup original binaries |
#!/usr/bin/env bash | |
composer validate | |
### Previous version | |
# php -r "\$lock = json_decode(file_get_contents('composer.lock'))->hash; \$json = md5(file_get_contents('composer.json')); if (\$lock !== \$json) { echo \"Lock file out of date\\n\"; exit(1); } echo \"Lock file up to date\\n\"; exit(0);" | |
* Update (12.09.2017): I have improved the trait so that it can be used with objects other than Eloquent Models.
Some days ago I came across a task where I needed to implement managable state for an Eloquent model. This is a common task, actually there is a mathematical model called "Finite-state Machine". The concept is that the state machine (SM) "can be in exactly one of the finite number of states at any given time". Also changing from one state to another (called transition) depends on fulfilling the conditions defined by its configuration.
Practically this means you define each state that the SM can be in and the possible transitions. To define a transition you set the states on which the transition can be applied (initial conditions) and the only state in which the SM should be after the transition.
That's the theory, let's get to the work.
FROM php:7.1-apache | |
ADD . /var/www | |
ADD ./site.conf /etc/apache2/sites-enabled/000-default.conf | |
RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client && \ | |
docker-php-ext-install mcrypt pdo_mysql opcache && \ | |
pecl install redis-3.1.2 && docker-php-ext-enable redis && \ | |
a2enmod rewrite |
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz | |
tar xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz | |
mv wkhtmltox/bin/wkhtmlto* /usr/bin/ | |
ln -nfs /usr/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf |
version: 2 | |
jobs: | |
test-job: | |
machine: true | |
steps: | |
- checkout | |
- run: sudo bash -c "$(curl -fsSL https://s3.amazonaws.com/tools.nanobox.io/bootstrap/ci.sh)" | |
- run: nanobox evar add local CLOUDINARY_API_KEY=$CLOUDINARY_API_KEY |
# Apache configuration file | |
# httpd.apache.org/docs/2.2/mod/quickreference.html | |
# Note .htaccess files are an overhead, this logic should be in your Apache | |
# config if possible: httpd.apache.org/docs/2.2/howto/htaccess.html | |
# Techniques in here adapted from all over, including: | |
# Kroc Camen: camendesign.com/.htaccess | |
# perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/ | |
# Sample .htaccess file of CMS MODx: modxcms.com |