Dynamically generate classes at runtime in php?

code-generation, dynamic-compilation, php, proxy-classes

Solution

This is almost certainly a bad idea.

I think your time would be better spent creating a script that would create your class definitions for you, and not trying to do it at runtime.

Something with a command-line signature like:

./generate_classes_from_db <host> <database> [tables] [output dir]

Problem

Here's what I want to do: ``` $clsName = substr(md5(rand()),0,10); //generate a random name $cls = new $clsName(); //create a new instance function __autoload($class_name) { //define that instance dynamically } ``` Obviously this isn't what I'm actually doing, but basically I have unknown names for a class and based on the name, I want to generate the class with certain properties etc. I've tried using eval() but it is giving me fits over private and $this-> references... //edit Ok, obviously my short and sweet "here's what I want to do" caused massive strife and consternation amongst those who may be able to provide answers. In the hope of getting an actual answer I'll be more detailed. I have a validation framework using code hints on the site I maintain. Each function has two definitions ``` function DoSomething($param, $param2){ //code } function DoSomething_Validate(vInteger $param, vFloat $param2){ //return what to do if validation fails } ``` I'm looking to add a validator for primary keys in my database. I don't want to create a separate class for EVERY table (203). So my plan was to do something like ``` function DoSomething_Validate(vPrimaryKey_Products $id){ } ``` Where the __autoload would generate a subclass of vPrimaryKey and set the table parameter to Products. Happy now?

Original source

Related problems