Skip to content

Instantly share code, notes, and snippets.

Mike Schinkel mikeschinkel

Block or report user

Report or block mikeschinkel

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
mikeschinkel /
Last active Nov 19, 2019
Examples for how a __toArray() magic method could be useful in PHP.

Examples for how a __toArray() magic method could be useful in PHP.

In a nutshell, __toArray() would not be as useful when you have full control over the entire codebase.

But where __toArray() would be extremely useful is in interfacing with existing code that expects arrays and wants those arrays to be a specific format. Using classes and type-hinted methods allow to encapsulate the intelligence into the class, and using __toArray() makes for a nature use-case.

mikeschinkel /
Last active Sep 17, 2019
Proposal for Union Class Types in PHP
mikeschinkel /
Last active Sep 1, 2019
Typical example of header.php code use in WordPress templates.

This is in reference to:

The following header.php file comes directly from a client site, developed by someone else, with all identifying and account information replaced.

Any of the <?php tags could hypothetically be replaced by a tag that would indicate a different set of rules for only that segment of code, e.g. <?p8 could be introduced to support all the strictness that the advocates of strictness desire. This would give them the strictness where they want it and let everyone else continue to stick with <?php for use in PHP 8.

mikeschinkel /
Last active Jul 29, 2019
List of funcs in GoLang 1.12.6 SDK w/over declarations over 100 characters long
# This is how I created funcs.txt
# I also manually edited out anything that was not a func declaration
find /usr/local/opt/go/libexec/src/. | grep "\.go" | grep -v syscall | xargs awk '{print length, $0}' |grep func |grep -v "="|grep -v "//" |sort -nr | head -1000 > funcs.txt
mikeschinkel / index.php
Created Jul 21, 2019
Example PHP showing how to "return" a value from a require()
View index.php
$version = require(__DIR__.'/version.php');
echo "The current version is {$version}";
mikeschinkel / .readme.txt
Last active May 8, 2019
Proof-of-concept example of Swift using The Break/Continue Guard Clause pattern
View .readme.txt
Here is an example of using what I am currently calling the Break/Continue Guard Clause pattern.
mikeschinkel / log.txt
Created May 6, 2019
Raw grep file for WordPress plugins having 'wp_edit_nav_menu_walker' hook as of 2019-05-05
View log.txt
add-to-menus-lite/index.php: add_filter( 'wp_edit_nav_menu_walker', array( $this, 'edit_nav_menu_walker' ) );
advanced-custom-fields/includes/forms/form-nav-menu.php: add_filter('wp_edit_nav_menu_walker', array($this, 'wp_edit_nav_menu_walker'), 10, 2);
advanced-custom-fields/includes/forms/form-nav-menu.php: * wp_edit_nav_menu_walker
advanced-custom-fields/includes/forms/form-nav-menu.php: function wp_edit_nav_menu_walker( $class, $menu_id = 0 ) {
affilicious/vendor/htmlburger/carbon-fields/core/Container/Nav_Menu_Container.php: add_filter( 'wp_edit_nav_menu_walker', array( $self, 'edit_walker' ), 10, 2 );
agp-font-awesome-collection/classes/MenuIcons.php: add_filter( 'wp_edit_nav_menu_walker', array( $this, 'editWalker'), 10, 2 );
amnav-menu-control/inc/class.aMNav_Menu_Control.php: add_filter( 'wp_edit_nav_menu_walker', array( $this, 'edit_nav_menu_walker' ) );
apollo13-framework-extensions/features/mega-menu.php:add_filter( 'wp_edit_nav_menu_walker', 'a13fe_admin_change_walker_class', 10, 2
mikeschinkel / log.txt
Last active May 6, 2019
Raw grep file for WordPress plugins extending Walker_Nav_Menu_Edit as of 2019-05-05
View log.txt
advanced-custom-fields/includes/walkers/class-acf-walker-nav-menu-edit.php:class ACF_Walker_Nav_Menu_Edit extends Walker_Nav_Menu_Edit {
apparelcuts-spreadshirt/resources/advanced-custom-fields/includes/walkers/class-acf-walker-nav-menu-edit.php:class ACF_Walker_Nav_Menu_Edit extends Walker_Nav_Menu_Edit {
arrivala-online-business-reviews/vendor/advanced-custom-fields/includes/walkers/class-acf-walker-nav-menu-edit.php:class ACF_Walker_Nav_Menu_Edit extends Walker_Nav_Menu_Edit {
asciinema-player/includes/acf/includes/walkers/class-acf-walker-nav-menu-edit.php:class ACF_Walker_Nav_Menu_Edit extends Walker_Nav_Menu_Edit {
auto-generate-submenus/auto-generate-submenus.php: class Willy_Walker_Nav_Menu_Edit extends Walker_Nav_Menu_Edit {
automatic-submenu/automatic-submenu.php:class AutomaticSubmenu_Walker_Nav_Menu_Edit extends Walker_Nav_Menu_Edit
beagency-lite/inc/custom-menu/walker-nav-menu-edit.php:class beagency_Menu_Item_Custom_Fields_Walker extends Walker_Nav_Menu_Edit {
mikeschinkel / log.txt
Last active May 6, 2019
Raw grep file for plugins having 'wp_nav_menu_item_custom_fields' hook as of 2019-05-05
View log.txt
add-to-menus-lite/class.Walker_Nav_Menu_Edit.php: do_action( 'wp_nav_menu_item_custom_fields', $item_id, $item, $depth, $args );
advanced-custom-fields/includes/walkers/class-acf-walker-nav-menu-edit.php: do_action( 'wp_nav_menu_item_custom_fields', $item->ID, $item, $depth, $args, $id );
amnav-menu-control/inc/class.Walker_Nav_Menu_Edit_Roles.php: do_action( 'wp_nav_menu_item_custom_fields', $item_id, $item, $depth, $args );
apparelcuts-spreadshirt/resources/advanced-custom-fields/includes/walkers/class-acf-walker-nav-menu-edit.php: do_action( 'wp_nav_menu_item_custom_fields', $item->ID, $item, $depth, $args, $id );
arrivala-online-business-reviews/vendor/advanced-custom-fields/includes/walkers/class-acf-walker-nav-menu-edit.php: do_action( 'wp_nav_menu_item_custom_fields', $item->ID, $item, $depth, $args, $id );
asciinema-player/includes/acf/includes/walkers/class-acf-walker-nav-menu-edit.php: do_action( 'wp_nav_menu_item_custom_fields', $item->ID, $item, $depth, $args, $id
mikeschinkel / dowhilefalse-example.php
Created Apr 25, 2019
do {...} while (false) example assuming WordPress/PHP
View dowhilefalse-example.php
function some_function($value) {
do {
if ( some_condition ) {
if ( some_other_condition ) {
if ( some_further_condition ) {
You can’t perform that action at this time.