Skip to content

Instantly share code, notes, and snippets.

View Thinkscape's full-sized avatar

Arthur Bodera Thinkscape

View GitHub Profile
@Thinkscape
Thinkscape / bytesToString.php
Last active December 19, 2015 23:59
Converts int bytes to a highest, rounded, multiplication that is IEC compliant.
<?php
/**
* Converts int bytes to a highest, rounded, multiplication that is IEC compliant.
*
* @link https://en.wikipedia.org/wiki/Binary_prefix
*
* @param int $size Number of bytes to convert
* @param int $precision Rounding precision (defaults to 0)
* @return string Highest rounded multiplication with IEC suffix
*/
@Thinkscape
Thinkscape / application.config.php
Last active December 20, 2015 20:58
Example of production/devel runtime config branching with ZF2 skeleton app.
<?php
// Determine ENV
define('APPLICATION_ENV', getenv('APPLICATION_ENV') == 'development' || PHP_SAPI == 'cli' ? 'development' : 'production');
// Load the appropriate config file
return
APPLICATION_ENV == 'development' ?
require __DIR__.'/application.development.config.php' :
require __DIR__.'/application.production.config.php'
;
@Thinkscape
Thinkscape / JsonResponseVisitor.php
Created August 15, 2013 12:27
Guzzle path-enabled json response visitor.
<?php
namespace Guzzle\Service\Command\LocationVisitor\Response;
use Guzzle\Http\Message\Response;
use Guzzle\Service\Command\CommandInterface;
use Guzzle\Service\Description\Parameter;
class JsonPathVisitor extends JsonVisitor
{
public function visit(
@Thinkscape
Thinkscape / xml-to-json-problem.php
Last active August 10, 2023 10:36
Problem with using json_encode() to transform XML into array.
<?php
$xml = new \SimpleXMLElement('<xml>
<node attr="bar">second</node>
</xml>');
$array = json_decode(json_encode($xml), true);
print_r($array);
/*
Array
@Thinkscape
Thinkscape / SimpleXMLElement-node-existence.php
Last active June 11, 2021 02:53
How to check if a <child> node exists in SimpleXMLElement document ? Comparison of different approaches.
<?php
/**
* The only reliable way of determining if a child exists
* in SimpleXMLElement is to use count(). All other methods
* do not work reliably in global or local NS.
*
* NOTE: Error suppresion on @count() is used to suppress
* "PHP Warning: count(): Node no longer exists"
*/
if(!class_exists('SimpleXMLElement')) die("Bonkers");
@Thinkscape
Thinkscape / EagerQuoteStrategy.php
Last active March 14, 2023 11:58
Doctrine2 ORM strategy for quoting all identifiers by default.
<?php
namespace Doctrine\ORM\Mapping;
use Doctrine\ORM\Mapping\ClassMetadata;
use Doctrine\DBAL\Platforms\AbstractPlatform;
/**
* A set of rules for determining the physical column, alias and table quotes
*/
class EagerQuoteStrategy implements QuoteStrategy
@Thinkscape
Thinkscape / AbstractCello.php
Last active December 24, 2015 05:29
For Julian
<?php
abstract class AbstractCello
{
/**
* @var EventManager
*/
protected $em;
protected function triggerPre($methodName, $params)
#!/usr/bin/env php
<?php
/**
* PHP 5.4 Short Array Syntax Converter
*
* Command-line script to convert PHP's "array()" syntax to PHP 5.4's
* short array syntax "[]" using PHP's built-in tokenizer.
*
* This script is free software; you can redistribute it and/or
@Thinkscape
Thinkscape / bug-method-class.php
Last active December 29, 2015 13:49
WI-17404
<?php
namespace Foo {
class Bar {
public function baz(){}
}
}
namespace Jira {
use Foo\Bar;
<?php
namespace My\App;
use Zend\Filter\FilterChain;
use Zend\InputFilter\Factory;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
use Zend\Validator\ValidatorChain;
/**