-
Notifications
You must be signed in to change notification settings - Fork 0
/
ToDo.txt
107 lines (77 loc) · 3.58 KB
/
ToDo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
php -l FILENAME # lint mode: validate syntax without execution
PHP 7.4:
--------
Type Hint Class Properties> class A { public string $name; public ?Foo $foo; }
$data['date'] ??= new DateTime(); // Null coalescing assignment operator
$callable = [$this, 'method'];
Types: class/interface name, self, array, callable, bool, float, int, string, iterable (, void) (>= PHP 7.0.0)
Other/Missing: mixed, resource, iterable, object, ? (nullable), parent
see: https://stitcher.io/blog/typed-properties-in-php-74
<?php declare(strict_types=1);
$foo = 10; // $foo is an integer
$str = "$foo"; // $str is a string
$fst = (string) $foo; // $fst is also a string
$binary = (binary) $string;
$binary = b"binary string";
object serialization: __serialize, __unserialize, __sleep, __wakeup
ReflectionReference
HereDoc - leading whitespace will be ignored
list($a, &$b) = $array; // list with reference support
Foreign function interface (FFI) = call C code from userland
Preloading:
- loader script necessary (will be executed once on server startup)
- all preloaded files are available in memory for all requests (changes of FS won't have any effect unless server is restarted)
php.ini: opcache.preload=/path/to/project/preload.php
preload.php: foreach ($files as $file) { opcache_compile_file($file); }
// better: put opcache_compile_file($file) into custom autoload and use: foreach ($files as $file) { require_once $file; }
see: https://stitcher.io/blog/preloading-in-php-74, https://stitcher.io/blog/php-preload-benchmarks
replace [|#|] with Math "Parallel to" Symbol: [∥] = [∥] (VIM: STRG+v u2225) escape with [∥]
other alternatives: 220e∎a 22c6⋆a 2223∣a (see https://www.w3schools.com/charsets/ref_utf_math.asp)
Mailer:
-------
Include Support for symfony swiftmailer
- https://swiftmailer.symfony.com/docs/introduction.html
- https://github.com/swiftmailer/swiftmailer
CheckOut:
---------
- https://github.com/leocavalcante/siler
- https://www.swoole.co.uk/
Auto-create doc:
----------------
@throws, @exit, @redirect, @use_define, @define and @param + @return from type hints (auto-detect if array is hash)
No doc in abstract implementation.
Parser:
-------
Create PHP 5.x compatible lib:
Check namespace:
----------------
for a in src/*.php; do echo -n "$a: "; head -3 $a | tail -1 | grep 'namespace rkphplib'; done
Unique Session:
---------------
https://stackoverflow.com/questions/2950355/set-session-in-database-in-php
Image Wrapper (to GD/Imagick):
------------------------------
http://image.intervention.io/getting_started/installation
Image Viewer:
-------------
https://www.fahrzeugsysteme.de/zubehoer/3d-dachspoiler-dachschlafkabine/
TFormInput:
-----------
Create auto-growning Text input
http://www.brianchu.com/blog/2013/11/02/creating-an-auto-growing-text-input/
http://jsfiddle.net/2UDdh/43/?utm_source=website&utm_medium=embed&utm_campaign=2UDdh
Rebase:
-------
Since a feature branch is only controlled (hopefully) by 1 developer, I find it more effective to rebase instead.
This ensures some things: Developer is aware of the deltas between his branch and master. The feature branch will
be almost a "fresh copy".
# so instead of git merge in run.sh:_php5
git checkout php5
git fetch origin
git rebase origin/master
# fix w/e needs fixing
Furthermore, you can do more cool stuff with rebase --interactive, like pluck, merge, rename and much more to your commits.
git rebase origin/master -i
Check extensions:
ext-apc, ext-apcu, ext-dba, ext-memcache, ext-memcached, ext-mongo, ext-mongodb, ext-redis, ext-wincache, ext-xcache, ext-intl,
ext-amqp, ext-twig, ext-xslcache