Skip to content

geekishmatt/meta-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

meta-php

usage

class User {
 
 use Meta;

 private $username;
 private $email;
 private $password;
 
 public function setUsername($username) {
  $this->username = (string)$username;
  return $this;
 }
 
 public function getUsername() {
  return $this->username;
 }
 
 public function setEmail($email) {
  $this->email = (string)$email;
  return $this;
 }
 
 public function getEmail() {
  return $this->email;
 }
 
 public function setPassword($password) {
  $this->password = (string)md5($password);
  return $this;
 }
 
 public function getPassword() {
  return $this->password;
 }
}
$user = new User();
$user->setUsername('geekishmatt')->setEmail('[email protected]')->setPassword('test123');

$user->addAttribute('tableName');

$user->tableName = 'users';

$user->addMethod('save', function($self){
 $sql = 'INSERT INTO ' . $self->tableName . ' (';
 $values = 'VALUES (';
 
 $getMethods = preg_grep('(^get(.*?)$)', get_class_methods(get_class($self)));
 
 foreach($getMethods as $method) {
  $sql .= '\''.strtolower(substr($method,3)).'\''.',';
  $values .= '\''.$self->$method().'\''.',';
 };
 
 $statement = substr($sql,0,strlen($sql)-1).') '.substr($values,0,strlen($values)-1).');';

 return $statement;
});


// Output: INSERT INTO users ('username','email','password') VALUES ('geekishmatt','[email protected]','cc03e747a6afbbcbf8be7668acfebee5');
echo $user->save();

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages