Skip to content

Instantly share code, notes, and snippets.

@milo
milo / LatteBackportMacros.php
Created February 14, 2020 15:07
Latte 2.7 macros bacported for Latte 2.6
<?php
/**
* I'm excited from PhpStorm Latte plugin update and support of new {varType} and {templateType} macros prepared for
* a new Latte 2.7 release. But I'm still using Latte 2.6. This class is a temporary backport of this macros before
* I upgrade to 2.7.
*
* About plugin updates: https://forum.nette.org/en/32907-upgrades-in-latte-plugin-for-phpstorm
*/
@milo
milo / php-oci8-debian.md
Last active January 31, 2024 10:49
PHP Oracle OCI8 extension on Linux Debian

Oracle Instant Client libraries installation

Download Oracle Instant Client libraries (URL may change, already happened few times). Be sure you download correct (x64 or x32) architecture. And correct version.

Last time I used Client 21.5.0.0.0 with Oracle 12c and PHP 8.1 and 8.3.

Before that Instant Client 21.3.0.0.0 with Oracle 12c and compiled with PHP 8.0, 7.4 and 7.3 fine.

Before that Instant Client 10.1.0.5.0 with Oracle 10g, 11g and 12c and PHP 5.6, 7.1, 7.2, 7.3 and 7.4.

Never hit any problem with such setups but my queries are quite simple. One should be fine with the newest version. It should be backward compatible (fingers crossed).

@milo
milo / ServiceCollectionsExtension.php
Created October 3, 2018 13:56
Nette DI service collections
<?php
declare(strict_types=1);
namespace App;
use Nette\DI\CompilerExtension;
/**
@milo
milo / CsvResponse.php
Last active June 25, 2018 12:06
CSV response for Nette Application
<?php
declare(strict_types=1);
namespace App\Responses;
use Nette\Application;
use Nette\Http;
@milo
milo / vhost.conf
Created November 22, 2017 11:26
Apache proxy to localhost port with WebSockets
#
# Proxy for local running .NET application on port 5000
#
# a2enmod proxy proxy_http proxy_wstunnel
#
<VirtualHost *:443>
ServerName example.com
ServerAdmin webmaster@example.com
@milo
milo / Crypt.php
Last active January 28, 2019 09:13
Crypt with OpenSSL
<?php
/**
* Copyright (c) 2015 Miloslav Hůla (https://github.com/milo)
*/
namespace Milo;
final class Crypt
@milo
milo / fid-remove.js
Created April 20, 2017 12:46
Flash message _fid parameter remove.
(function (w, timeout) {
setTimeout(function () {
var url = w.location.toString();
if (w.history && w.history.replaceState && url.indexOf('_fid=') !== -1) {
w.history.replaceState({}, null, /[?&]_fid=[^&]+$/.test(url)
? url.replace(/[?&]_fid=[^&]+/, '')
: url.replace(/([?&])_fid=[^&]+&/, '$1')
);
}
}, timeout || 2000);
@milo
milo / PersistentUploadControl.php
Created August 18, 2015 11:17
Persistent file upload control for #nettefw
<?php
namespace App\Controls;
use App\Model\Entities;
use Nette\DirectoryNotFoundException;
use Nette\Forms;
use Nette\Http;
use Nette\Utils\Html;
@milo
milo / post-merge
Created July 23, 2015 11:48
Git hook for purging cache
#!/bin/sh
# Save as .git/hooks/post-merge
# Set execute bit like: chmod ug+x .git/hooks/post-merge
purgePath="temp/cache"
echo
echo -n "HOOK [Purge cache]: "
if [ -d "$purgePath" ]; then
@milo
milo / Bootstrap3Renderer.php
Created June 3, 2015 09:01
Bootstrap3 renderer for Nette Framework forms
<?php
namespace Milo\NetteForms\Rendering;
use Nette\Forms;
use Nette\Forms\Controls;
/**
* Simple Bootstrap3 renderer for Nette Framework forms.
*