Skip to content

Instantly share code, notes, and snippets.

View m8rge's full-sized avatar
👨‍💻
Code is for developers first

Andrey m8rge

👨‍💻
Code is for developers first
View GitHub Profile
@m8rge
m8rge / SerializeAttributeBehavior.php
Last active June 7, 2018 11:17
SerializeAttributeBehavior
<?php
use yii\base\Behavior;
use yii\db\ActiveRecord;
class SerializeAttributeBehavior extends Behavior
{
/**
* @var string[]
*/
@m8rge
m8rge / CantSave.php
Last active May 19, 2018 18:13
Yii2 exception for non-saved active records
<?php
namespace common\exception;
use e96\sentry\ErrorHandler;
use yii\base\Exception;
use yii\db\ActiveRecord;
class CantSave extends Exception
@m8rge
m8rge / WithoutTrait.php
Last active June 8, 2017 04:40
Without yii2 activerecord trait
<?php
namespace common\ActiveRecordTrait;
use yii\db\ActiveQuery;
use yii\db\ActiveRecord;
trait WithoutTrait
{
@m8rge
m8rge / TruncateString.php
Last active November 3, 2016 06:51
Truncate string on word break
<?php
/**
* @param string $string Subject
* @param int $length Max string length
* @param bool $exactLength Truncate string with exact $length
* @param string $append Ellipsis string
* @return string
*/
class TruncateString
@m8rge
m8rge / ConsoleProgress.php
Last active November 3, 2016 06:50
Simple yii2 console progress helper
<?php
use yii\base\Object;
use yii\helpers\Console;
/**
* Usage:
* $consoleProgress = new ConsoleProgress(['max' => 365]);
* $consoleProgress->start();
* foreach($days in $day) {
@m8rge
m8rge / post-or-pre.md
Last active February 4, 2016 10:54
Что потребляет больше памяти в php: преинкремент или постинкремент?

Что потребляет больше памяти в php: преинкремент или постинкремент?

Существует мнение, что преинкремент потребляет меньше памяти, т.к. он инкрементирует саму переменную, а постинкремент помимо этого, копирует ее предыдущее значение во временную переменную.

Давайте рассмотрим следующий код:

1. <?php
2. $a = 1;
3. echo $a++;
4. $b = 1;
@m8rge
m8rge / InMemoryCache.php
Last active February 3, 2016 07:36
Simple limited memory cache
<?php
class InMemoryCache
{
public $size = 10;
protected $cache = [];
/**
* @param string $key
@m8rge
m8rge / AsteriskMatch.php
Last active January 29, 2016 08:16
Test string against simple mask with asterisk *
<?php
class AsteriskMatch
{
/**
* @param string $mask string with asterisk
* @param string $string tested subject
* @return bool
* @throws \Exception
*/
@m8rge
m8rge / gist:7923382
Last active December 31, 2015 02:49
chef, будь он неладен
# Создание шаблона с sql созданием бд и пользователя
template "/var/tmp/getmail_create_tables.mysql" do
source "mysql/getmail.sql.erb"
mode "0600"
# только если пользователя бд нет
not_if "mysql -e \"\" -h localhost -P 3306 getmail"
# запускаем на выполнение
notifies :run, "execute[mysql_create_getmail_tables]", :immediately
end
@m8rge
m8rge / pullUpLastTag.php
Created November 15, 2013 05:15
Подтягивает последний тег до последнего коммита и пушит его в мастер.
#!/usr/bin/env php
<?php namespace App;
/**
* @param string $command
* @return string[]
*/
function exec($command)
{
echo "> $command\n";