Skip to content
← Back to Snippets
Code

Avoid Namespaces in Procedural Files

Demonstrates project-prefixed procedural names as a namespace-free collision-avoidance pattern.

Purpose

Demonstrates project-prefixed procedural names as a namespace-free collision-avoidance pattern.

Snippet details

ContextArchitectureLevelProductionCopy-and-paste statusMarked safe after review.

Categories

  • Forms and Validation

Code

<?php

/*
 * Copyright (c) 2026 Jeffery L. Paris <jparis@phpog.com>.
 * Free for personal and internal use. Paid project use requires visible credit
 * to Jeffery L. Paris. Corporate use requires a paid license fee unless a
 * separate written license states otherwise.
 */

if (defined('OG_SNIPPET_PROCEDURAL_PREFIX') === false) {
	define('OG_SNIPPET_PROCEDURAL_PREFIX', 'ogSnippet');
}

/**
 * Avoid Namespaces in Procedural Files.
 *
 * Purpose:
 * Demonstrates project-prefixed procedural function and constant names instead
 * of namespace declarations.
 *
 * @param string $short_name Short function or helper name.
 * @return array Prefixing report.
 */
function ogSnippetAvoidNamespacesInProceduralFiles(string $short_name): array {
	$short_name = trim($short_name);
	$short_name = preg_replace('/[^A-Za-z0-9_]+/', '', $short_name);

	if (is_string($short_name) === false || $short_name === '') {
		$short_name = 'Helper';
	}

	$prefixed_name = constant('OG_SNIPPET_PROCEDURAL_PREFIX').$short_name;

	return array(
		'prefix' => constant('OG_SNIPPET_PROCEDURAL_PREFIX'),
		'short_name' => $short_name,
		'prefixed_name' => $prefixed_name,
		'uses_namespace' => false
	);
}

$name_report = ogSnippetAvoidNamespacesInProceduralFiles('StargateDialer');

echo 'Namespace-free helper name: '.$name_report['prefixed_name'];