( ! ) Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /opt/web-dev/routes/Blog/Index.php on line 44
Call Stack
#TimeMemoryFunctionLocation
10.0001359328{main}( ).../index.php:0
20.0051454368Nether\Avenue\Router->Run( $Route = ??? ).../index.php:12
30.0054454776Nether\Avenue\RouteHandler->Run( $Router = class Atlantis\Site\Router { protected $Domain = 'dev.pegasusgate.net'; protected $Path = '/+bob'; protected $HitHash = '64869f846670b7d92629cf311bcf13aef26ff192188a3c936a7df24bd84f087a2dbd9fcffeb601952ddb1d82eee564ae4e9b16f3340e03db01253813724d6a69'; protected $HitTime = 1660416348.3743; protected $Route = class Nether\Avenue\RouteHandler { protected $Router = ...; protected $Domain = '`^(?:(?:.+?\\.)?dev\\.pegasusgate\\.net)$`'; protected $Path = '`^\\/\\x2b([^\\/]+)$`'; protected $Query = [...]; protected $Class = 'Routes\\Blog\\Index'; protected $Method = 'Index'; protected $Argv = [...] }; protected $Routes = [0 => class Nether\Avenue\RouteHandler { ... }, 1 => class Nether\Avenue\RouteHandler { ... }, 2 => class Nether\Avenue\RouteHandler { ... }, 3 => class Nether\Avenue\RouteHandler { ... }, 4 => class Nether\Avenue\RouteHandler { ... }, 5 => class Nether\Avenue\RouteHandler { ... }, 6 => class Nether\Avenue\RouteHandler { ... }, 7 => class Nether\Avenue\RouteHandler { ... }, 8 => class Nether\Avenue\RouteHandler { ... }, 9 => class Nether\Avenue\RouteHandler { ... }, 10 => class Nether\Avenue\RouteHandler { ... }, 11 => class Nether\Avenue\RouteHandler { ... }, 12 => class Nether\Avenue\RouteHandler { ... }, 13 => class Nether\Avenue\RouteHandler { ... }, 14 => class Nether\Avenue\RouteHandler { ... }, 15 => class Nether\Avenue\RouteHandler { ... }, 16 => class Nether\Avenue\RouteHandler { ... }, 17 => class Nether\Avenue\RouteHandler { ... }, 18 => class Nether\Avenue\RouteHandler { ... }, 19 => class Nether\Avenue\RouteHandler { ... }, 20 => class Nether\Avenue\RouteHandler { ... }, 21 => class Nether\Avenue\RouteHandler { ... }, 22 => class Nether\Avenue\RouteHandler { ... }, 23 => class Nether\Avenue\RouteHandler { ... }, 24 => class Nether\Avenue\RouteHandler { ... }, 25 => class Nether\Avenue\RouteHandler { ... }, 26 => class Nether\Avenue\RouteHandler { ... }, 27 => class Nether\Avenue\RouteHandler { ... }, 28 => class Nether\Avenue\RouteHandler { ... }, 29 => class Nether\Avenue\RouteHandler { ... }, 30 => class Nether\Avenue\RouteHandler { ... }, 31 => class Nether\Avenue\RouteHandler { ... }, 32 => class Nether\Avenue\RouteHandler { ... }, 33 => class Nether\Avenue\RouteHandler { ... }, 34 => class Nether\Avenue\RouteHandler { ... }, 35 => class Nether\Avenue\RouteHandler { ... }, 36 => class Nether\Avenue\RouteHandler { ... }, 37 => class Nether\Avenue\RouteHandler { ... }]; public $Query = [] } ).../Router.php:112
40.0123576528call_user_func_array:{/opt/web-dev/vendor/netherphp/avenue/src/Nether/Avenue/RouteHandler.php:41}( $callback = [0 => class Routes\Blog\Index { public Nether\Input\Filter $Get = class Nether\Input\Filter { ... }; public Nether\Input\Filter $Post = class Nether\Input\Filter { ... }; public Atlantis\Site\Router $Router = class Atlantis\Site\Router { ... }; public Nether\Surface $Surface = class Atlantis\Site\Surface { ... }; public Nether\Object\Datastore $Errors = class Nether\Object\Datastore { ... }; public ?Atlantis\Prototype\User $User = NULL; public $Method = 'GET'; public $Storage = class Atlantis\StorageManager { ... } }, 1 => 'Index'], $args = [0 => 'bob'] ).../RouteHandler.php:41
50.0123576600Routes\Blog\Index->Index( $BlogAlias = 'bob' ).../RouteHandler.php:41
60.0226665352strtolower( $string = NULL ).../Index.php:44

Squirrels Hate Robots

Rage Driven Development

Latest Posts

RSS

2 Comments | 1 Image

I recently looped back around to working on my blog with the intention of finally adding environment support. Originally the site was all there was and I was working on the live copy, but now it is aware of the environment and I am able to do sweeping changes on a private server without messing up the live server. This project however is the first one I am using DigitalOcean's Spaces product - an S3 compatible (mostly) object storage - and so I needed to copy a snapshot of my existing bucket to a new bucket just for my development needs.
Continue Reading...
3 Min Read

At first this was a feature I was excited for. After using it, I've changed my mind about it. Constructor property promotion was added so that you could pass an argument to a class constructor, and it would get auto assigned to a property, without you having to do $this->That = $That in your constructors over and over.
Continue Reading...
4 Code Blocks | 2 Min Read

The main point of attributes is to add metadata to code that is easily parseable and can think for itself when you ask for it. Up to now most devs were probably doing this using the PHP docblock thing - those double star multi-line comments. We'd fill them with @tags and then parse that data with Reflection and probably some regular expressions to make any sense of the blob of text.
Continue Reading...
1 Image | 9 Code Blocks | 8 Min Read

For a long time now, and like pretty much every other PHP dev out there, at some point I invented my own Object wrapper around arrays to give them nice OOP interfaces. I am a low level person so implementing my own wrappers is far more entertaining to me than just using one of the 34859 that already exist.
Continue Reading...
3 Code Blocks | 3 Min Read

You've built a fancy new photo uploader into your app and in less than 10 minutes after rolling it to production someone uploads a bunch of photos and they are sideways, upside down, or even worse... backwards. Welcome to the internet where phones are able to upload directly from their photo gallery. It's fine, we can fix this.
Continue Reading...
7 Images | 5 Code Blocks | 4 Min Read


Page 1 of 2

About


Blogging about web development. Sometimes there might even be useful information wedged in between complaints. You never know.

T_PAAMAYIM_NEKUDOTAYIM

Bloggers


Blog Owner
bob
Dallas, TX

Posts
9

Comments
4

Images
11

Code Blocks
26

Reading Time
~ 28m 58s