\n"; $error_message .= "
\n"; $error_message .= " \n"; $error_message .= "

<%= this.data.title %>

\n"; $error_message .= " \n"; $error_message .= "
\n"; $error_message .= "\n\n"; $error_message .= "See /rsx/app/demo/components/Counter_Widget.jqhtml for a complete example."; throw new YoureDoingItWrongException($error_message); } /** * Jqhtml component with incorrect lifecycle method naming */ public static function jqhtml_lifecycle_method( string $file, int $line_num, string $method ): void { $error_message = "Fatal: Incorrect Component lifecycle method detected.\n\n"; $error_message .= "File: {$file}\n"; $error_message .= "Line {$line_num}: Found '{$method}()' method\n\n"; $error_message .= "PROBLEM: Component lifecycle methods must be prefixed with 'on_'\n\n"; $error_message .= "SOLUTION: Rename the method:\n"; $error_message .= "- '{$method}()' should be 'on_{$method}()'\n\n"; $error_message .= "CORRECT LIFECYCLE METHODS:\n"; $error_message .= "- on_create() - Setup initial state and bind events\n"; $error_message .= "- on_load() - Fetch async data (no DOM manipulation)\n"; $error_message .= "- on_ready() - Final setup after component is loaded\n\n"; $error_message .= "All methods should be async if they need to wait for operations.\n\n"; $error_message .= "EXAMPLE (from User_Card.js):\n"; $error_message .= "async on_create() {\n"; $error_message .= " this.editing = false;\n"; $error_message .= "}\n\n"; $error_message .= "async on_load() {\n"; $error_message .= " // Fetch data here\n"; $error_message .= " return new Promise((resolve) => {\n"; $error_message .= " // Load data...\n"; $error_message .= " resolve();\n"; $error_message .= " });\n"; $error_message .= "}\n\n"; $error_message .= "async on_ready() {\n"; $error_message .= " this.\$.addClass('loaded');\n"; $error_message .= "}"; throw new YoureDoingItWrongException($error_message); } /** * PHP file contains multiple class definitions */ public static function multiple_classes_in_file( string $file_path, array $class_names ): void { $error_message = "Multiple classes detected in PHP file: {$file_path}\n"; $error_message .= "Classes found: " . implode(', ', $class_names) . "\n"; $error_message .= "PHP files must contain only one class per file."; throw new YoureDoingItWrongException($error_message); } }