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'];