Skip to content

Instantly share code, notes, and snippets.

View BenMorel's full-sized avatar
🤝
Open to work. Drop me an email!

Benjamin Morel BenMorel

🤝
Open to work. Drop me an email!
View GitHub Profile
@BenMorel
BenMorel / coding-standard.md
Last active December 11, 2015 23:28
Coding standard draft for the Doctrine project
  • Code must follow PSR-2.
  • Classes must have a docblock documentation describing their purpose.
  • Class methods must have a docblock documentation, in this order:
    • A mandatory one-line short description.
    • An optional multi-line long description.
    • A mandatory @param annotation for each parameter: @param [type] [name] [description]
      • [type] is the type of the variable, primitive or class.
      • [name] is the name of the parameter, including the leading $.
      • [description] is a short description of the parameter. If the description spans multiple lines, all lines must be indented by the same number of spaces as the first line.
  • The indentation must be such as types, names and descriptions for all parameters of a single method start on the same column.
@BenMorel
BenMorel / webuseradd.sh
Last active December 20, 2015 12:59
Creates a user account with correct permissions to host a website with Apache.
#!/bin/sh
if [ -z $1 ]; then
echo "Usage: $(basename $0) [name]"
exit 1
fi
message() {
printf '%-60s' "$*"
}
@BenMorel
BenMorel / variadics-benchmark.php
Last active April 10, 2016 15:46
Benchmarks the impact of type-hinting on PHP variadic functions
<?php
$variadics = 1000; // number of objects passed to each variadic function
$iterations = 1000; // number of calls of each function
class Foo {
}
function withoutTypeHinting(...$foos) {
}
@BenMorel
BenMorel / TextHtmlConverter.php
Created January 11, 2017 00:00
Converts plain text to HTML
<?php
/**
* Converts a text message to HTML.
*
* The following transformations are applied:
* - Special characters are encoded to HTML entities,
* - Lines of text separated by an emtpy line are converted to paragraphs,
* - Newline characters are converted to `<br>`,
* - Links and e-mail addresses are converted to HTML links,
@BenMorel
BenMorel / convert-utf8mb4.php
Created May 31, 2017 16:12
Generates SQL to convert a MySQL database from utf8 to utf8mb4
<?php
/* Replace with your connection parameters & database name */
$hostname = 'localhost';
$username = 'root';
$password = '';
$database = 'test';
$pdo = new PDO("mysql:host=$hostname", $username, $password);
@BenMorel
BenMorel / setup-el7.sh
Last active September 6, 2017 15:50
Quick setup of extra software on EL7 for a test environment. Note that this disables the MySQL root password, so this is *not* secure.
set -e
sudo yum update -y
sudo yum install -y yum-utils wget
# EPEL repo
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum-config-manager --enable epel
# Remi repo
@BenMorel
BenMorel / convert-eol.php
Created March 2, 2018 16:55
PHP line breaks converter
<?php
/**
* Converts a string using CR, LF, CRLF, or possibly a mix of these, to the given EOL character(s).
*
* @param string $text The text to convert.
* @param string $eol The line break character(s).
*
* @return string
*/
<?php
use Brick\DateTime\LocalDate;
use Brick\DateTime\LocalTime;
use Brick\DateTime\LocalDateTime;
/**
* Formatter for date-time classes.
*/
class DateTimeFormatter
@BenMorel
BenMorel / solve.php
Last active May 20, 2018 12:33
Solve 2 equations with 2 unknowns in PHP
<?php
/**
* Solves the following equations:
*
* a·x + b·y = c
* d·x + e·y = f
*
* Returns an array with [x, y]
*/
@BenMorel
BenMorel / remove-mysql-root-password.sh
Last active June 3, 2018 19:43
(Medium) Remove MySQL root password *DO NOT USE THIS ON A PRODUCTION SERVER*
password=$(grep -oP 'temporary password(.*): \K(\S+)' /var/log/mysqld.log)
mysqladmin --user=root --password="$password" password aaBB@@cc1122
mysql --user=root --password=aaBB@@cc1122 -e "UNINSTALL PLUGIN validate_password;"
mysqladmin --user=root --password="aaBB@@cc1122" password ""