#php

Можно добавить пользовательские обработчики с помощью следующих функций.

В конце работы скрипта:

void register_shutdown_function ( callable $callback [, mixed $parameter [, mixed $... ]] )

При ошибке:

mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )

При исключении:

callable set_exception_handler ( callable $exception_handler )
/**
 * @SuppressWarnings(PHPMD.UnusedFormalParameter)
 */

Unused code:

  • UnusedPrivateField
  • UnusedLocalVariable
  • UnusedPrivateMethod
  • UnusedFormalParameter

Naming:

  • ShortVariable
  • LongVariable
  • ShortMethodName
  • ConstructorWithNameAsEnclosingClass
  • ConstantNamingConventions
  • BooleanGetMethodName
  • VariableNamingConventions
  • MethodNamingConventions
  • ClassNamingConventions
  • AbstractNaming
  • AvoidFieldNameMatchingTypeName
  • AvoidFieldNameMatchingMethodName
  • NoPackage
  • MisleadingVariableName

Design:

  • ExitExpression
  • EvalExpression
  • GotoStatement
  • NumberOfChildren
  • DepthOfInheritance
  • CouplingBetweenObjects
  • DevelopmentCodeFragment

Controversial:

Сравнивает два выражения. Отдаёт 1, если первое выражение больше, 0 если они равны, -1 если больше правое выражение.

echo 2 <=> 1; // 1
echo 3 <=> 3; // 0
echo 4 <=> 5; // -1

Точно так же сравнивает числа с плавающей точкой:

echo 7.2 <=> 7.1; // 1
echo 7.3 <=> 7.3; // 0
echo 7.4 <=> 7.5; // -1

И строки:

echo 'abd' <=> 'abc'; // 1
echo 'abc' <=> 'abc'; // 0
echo 'abc' <=> 'abe'; // -1

И массивы:

echo array(2) <=> array(1); // 1
echo array(3) <=> array(3); // 0
echo array(1, 4) <=> array(1, 5); // -1

А так же итерабельные объекты:

twig

Как установить twig?

composer require twig/twig

Как подключить twig?

$loader = new Twig_Loader_Filesystem('./templates');
$twig = new Twig_Environment($loader, array(
    'cache' => './cache',
//    'debug' => true,
));

$template = $twig->load('index.html.twig');

echo $template->render();

Как добавить глобальную переменную?

$twg->addGlobal('siteName', 'Тест');

Как добавить кастомные функции, проверки, фильтры?

/**
 * Class MyTwigExtension
 */
class MyTwigExtension extends \Twig_Extension
{
    /**
     * @return array
     */
    public function getTests()
    {
        return array(
            new \Twig_SimpleTest('instance_of', array($this, 'isInstanceOfTest'))
        );
    }

    /**
     * @return array
     */
    public function getFunctions()
    {
        return array(

1. Устанавливаем

composer require monolog/monolog

2. Подключаем, если composer autoload ещё не подключен

require_once 'vendor/autoload.php';

3. Создаём логгер в нашем крон-скрипте

use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$logger = new Logger('main');
$logger->setHandlers(
    array(
        new StreamHandler('php://stdout'),
        new StreamHandler('php://stderr', Logger::ERROR),
    )
);
// это сообщение будет сохранено в файл
$logger->info('Info message');
// это сообщение будет сохранено в файл и отправлено на почту
$logger->error('Error message'); 

Сделал простенький сервис генерирующий случайные пароли. Позволяет копировать пароли в буфер по клику. Удобная генерация новых паролей в один клик. Ничего лишнего. Приглашаю пользоваться - http://pwd.site-home.ru/

Код тут https://github.com/hobocta/pwd-service

Страницы