Advertisement
lignite0

ORM piece of mind

Aug 28th, 2015
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.78 KB | None | 0 0
  1. <?php
  2. namespace App\MemberBundle;
  3.  
  4. use App\MemberBundle\Model\Member;
  5. use Lignite0\ORM\Database;
  6.  
  7. # data from request
  8. $_POST['member']['username']   = 'admin';
  9. $_POST['member']['password']   = 'd033e22ae348aeb5660fc2140aec35850c4da997';
  10. $_POST['member']['somedata']   = '<a href="#">Lorem ipsum dolor</a>';
  11. $_POST['member']['postalCode'] = '00-000';
  12.  
  13. # init database connection, two ways
  14. $database = new Database('mysql:dbname=database;host=localhost', 'root', '');
  15. // or
  16. $database = \PDO('mysql:dbname=database;host=localhost', 'root', '');
  17.  
  18. # create new record, without queries yet
  19. $tableName      = "prefix__members_lang_pl";
  20. $memberTable    = new Member\Table($database, $tableName);
  21. $memberRecord   = new Member\Record($memberTable);
  22.  
  23. # the filter config array, for more information http://php.net/manual/en/book.filter.php
  24. $filter = array(
  25.     'username' => FILTER_DEFAULT,
  26.     'somedata' => FILTER_SANITIZE_ENCODED,
  27.     'postalCode'=> array(
  28.         'filter' => FILTER_CALLBACK,
  29.         'options' => array(
  30.             'callback' => function($filteredValue) {
  31.                 preg_match('/[\d]{2}-[\d]{3}/', $filteredValues);
  32.             }
  33.         )
  34.     )
  35. );
  36.  
  37. $source = filter_var_array($_POST['member'], $filters)
  38.  
  39. try {
  40.     $memberRecord->bindFromArray($source); // binding data to record where array key is a field of object
  41.     $newPrimaryID = $memberRecord->insert(); // query INSERT ...
  42. } catch (\PDOException $pdoException) {
  43.     // process exception
  44. } catch (\Exception $exception) {
  45.     // process exception
  46. }
  47.  
  48. var_dump($memberRecord->admin);             // string(5) "admin"
  49. var_dump($newPrimaryID);                    // e.g. int(5)
  50. var_dump($memberRecord->getPrimaryID());    // same as above
  51. var_dump($memberRecord->memberID);          // same as above
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement