@@ -36,6 +36,12 @@ abstract class pudl {
3636
3737
3838
39+
40+ ////////////////////////////////////////////////////////////////////////////
41+ // CONSTRUCTOR
42+ // $DATA IS ARRAY WITH CONFIGURATION DETAILS
43+ // $AUTOCONNECT = TRUE: AUTOMATICALLY CONNECT TO THE DATA SOURCE
44+ ////////////////////////////////////////////////////////////////////////////
3945 public function __construct ($ data , $ autoconnect =true ) {
4046 if (!empty ($ data [0 ]) && $ data [0 ] instanceof pudl) {
4147 $ pudl = $ data [0 ];
@@ -82,12 +88,22 @@ public function __construct($data, $autoconnect=true) {
8288
8389
8490
91+
92+ ////////////////////////////////////////////////////////////////////////////
93+ // DESTRUCTOR - FORCE ERASE SENSITIVE CONFIGURATION DATA
94+ ////////////////////////////////////////////////////////////////////////////
8595 public function __destruct () {
8696 $ this ->_auth (NULL );
8797 }
8898
8999
90100
101+
102+ ////////////////////////////////////////////////////////////////////////////
103+ // INVOKE THIS OBJECT
104+ // STRING: EXECUTE THE SQL QUERY STRING
105+ // ARRAY: GENERATE A SQL QUERY STRING THROUGH SELEX, AND EXECUTE IT
106+ ////////////////////////////////////////////////////////////////////////////
91107 public function __invoke ($ query ) {
92108 if (is_null ($ this ->log )) {
93109 $ this ->log = false ;
@@ -251,6 +267,9 @@ public function __invoke($query) {
251267
252268
253269
270+ ////////////////////////////////////////////////////////////////////////////
271+ // CREATE AN INSTANCE OF THIS OBJECT
272+ ////////////////////////////////////////////////////////////////////////////
254273 public static function instance ($ data , $ autoconnect =true ) {
255274 if (!empty ($ data [0 ]) && $ data [0 ] instanceof pudl) {
256275 $ pudl = $ data [0 ];
@@ -287,37 +306,93 @@ public static function instance($data, $autoconnect=true) {
287306
288307
289308
309+
310+ ////////////////////////////////////////////////////////////////////////////
311+ // PROCESS THE SQL QUERY THROUGH THE DATABASE ENGINE
312+ // RETURNS INSTANCE OF PUDLRESULT
313+ ////////////////////////////////////////////////////////////////////////////
290314 abstract protected function process ($ query );
291315
316+
317+
318+
319+ ////////////////////////////////////////////////////////////////////////////
320+ // GET THE ERROR CODE OF THE MOST RECENT SQL QUERY
321+ ////////////////////////////////////////////////////////////////////////////
292322 abstract public function errno ();
323+
324+
325+
326+
327+ ////////////////////////////////////////////////////////////////////////////
328+ // GET THE ERROR TEXT OF THE MOST RECENT SQL QUERY
329+ ////////////////////////////////////////////////////////////////////////////
293330 abstract public function error ();
294331
295332
296333
297- public function wait ($ wait =true ) { return $ this ; }
298- public function sync () { return $ this ; }
299- public function connect () {}
334+
335+ ////////////////////////////////////////////////////////////////////////////
336+ // FORCE A WAIT STATE ON THE DATABASE ENGINE
337+ ////////////////////////////////////////////////////////////////////////////
338+ public function wait ($ wait =true ) {
339+ return $ this ;
340+ }
341+
342+
343+
344+
345+ ////////////////////////////////////////////////////////////////////////////
346+ // FORCE A SYNCHRONIZATION OF THE DATABASE STORAGE SYSTEM
347+ ////////////////////////////////////////////////////////////////////////////
348+ public function sync () {
349+ return $ this ;
350+ }
351+
352+
353+
354+
355+ ////////////////////////////////////////////////////////////////////////////
356+ // CONNECT TO THE DATABASE SERVER
357+ ////////////////////////////////////////////////////////////////////////////
358+ public function connect () {}
359+
300360
301361
302362
363+ ////////////////////////////////////////////////////////////////////////////
364+ // DISCONNECT FROM THE DATABASE SERVER
365+ ////////////////////////////////////////////////////////////////////////////
303366 public function disconnect ($ trigger =true ) {
304367 if ($ trigger ) $ this ->trigger ('disconnect ' );
305368 }
306369
307370
308371
372+
373+ ////////////////////////////////////////////////////////////////////////////
374+ // GET THE RAW DATABASE CONNECTION HANDLE
375+ ////////////////////////////////////////////////////////////////////////////
309376 public function connection () {
310377 return $ this ->connection ;
311378 }
312379
313380
314381
382+
383+ ////////////////////////////////////////////////////////////////////////////
384+ // GET THE MOST RECENTLY EXECUTED SQL QUERY STRING
385+ ////////////////////////////////////////////////////////////////////////////
315386 public function query () {
316387 return $ this ->query ;
317388 }
318389
319390
320391
392+
393+ ////////////////////////////////////////////////////////////////////////////
394+ // ENABLE LOGGING
395+ ////////////////////////////////////////////////////////////////////////////
321396 public function log () {
322397 if (is_null ($ this ->log )) {
323398 $ this ->log = false ;
@@ -332,6 +407,10 @@ public function log() {
332407
333408
334409
410+
411+ ////////////////////////////////////////////////////////////////////////////
412+ // GET A LIST OF FIELDS FOR THE GIVEN $TABLE
413+ ////////////////////////////////////////////////////////////////////////////
335414 public function listFields ($ table , $ prefix ='' ) {
336415 if (!pudl_array ($ table )) $ table = [$ table ];
337416
@@ -368,6 +447,10 @@ public function listFields($table, $prefix='') {
368447
369448
370449
450+
451+ ////////////////////////////////////////////////////////////////////////////
452+ // RUN "EXPLAIN" ON THE GIVEN SQL QUERY STRING
453+ ////////////////////////////////////////////////////////////////////////////
371454 public function explain ($ query ) {
372455 $ return = '' ;
373456 $ result = $ this ('EXPLAIN ' . $ query );
@@ -379,18 +462,30 @@ public function explain($query) {
379462
380463
381464
465+
466+ ////////////////////////////////////////////////////////////////////////////
467+ // CHECK TO SEE IF THE GIVEN $ID VALUE EXISTS WITHIN THE GIVEN $TABLE
468+ ////////////////////////////////////////////////////////////////////////////
382469 public function idExists ($ table , $ col , $ id =false ) {
383470 return $ this ->cellId ($ table , $ col , $ col , $ id ) !== false ;
384471 }
385472
386473
387474
475+
476+ ////////////////////////////////////////////////////////////////////////////
477+ // CHECK TO SEE IF THE GIVEN $CLAUSE IS TRUE FOR THE GIVEN $TABLE
478+ ////////////////////////////////////////////////////////////////////////////
388479 public function clauseExists ($ table , $ clause ) {
389480 return $ this ->cell ($ table , true , $ clause ) !== false ;
390481 }
391482
392483
393484
485+
486+ ////////////////////////////////////////////////////////////////////////////
487+ // GET THE NUMBER OF ROWS FOUND
488+ ////////////////////////////////////////////////////////////////////////////
394489 public function found () {
395490 $ result = $ this ('SELECT FOUND_ROWS() ' );
396491 if ($ result instanceof pudlStringResult) return $ result ;
@@ -400,6 +495,10 @@ public function found() {
400495
401496
402497
498+
499+ ////////////////////////////////////////////////////////////////////////////
500+ // ???
501+ ////////////////////////////////////////////////////////////////////////////
403502 public function listItems ($ type , $ like =false , $ limit =false , $ offset =false ) {
404503 $ query = 'SHOW ' . $ type ;
405504 if (!empty ($ like )) $ query .= ' LIKE ' . $ this ->_value ($ like );
@@ -419,28 +518,50 @@ public function listItems($type, $like=false, $limit=false, $offset=false) {
419518
420519
421520
521+
522+ ////////////////////////////////////////////////////////////////////////////
523+ // GET THE GLOBAL STATUS
524+ ////////////////////////////////////////////////////////////////////////////
422525 public function globals ($ like =false , $ limit =false , $ offset =false ) {
423526 return $ this ->listItems ('GLOBAL STATUS ' , $ like , $ limit , $ offset );
424527 }
425528
426529
530+
531+
532+ ////////////////////////////////////////////////////////////////////////////
533+ // GET VARIABLES
534+ ////////////////////////////////////////////////////////////////////////////
427535 public function variables ($ like =false , $ limit =false , $ offset =false ) {
428536 return $ this ->listItems ('VARIABLES ' , $ like , $ limit , $ offset );
429537 }
430538
431539
540+
541+
542+ ////////////////////////////////////////////////////////////////////////////
543+ // GET THE DATABASE SERVER STATUS
544+ ////////////////////////////////////////////////////////////////////////////
432545 public function status ($ like =false , $ limit =false , $ offset =false ) {
433546 return $ this ->listItems ('STATUS ' , $ like , $ limit , $ offset );
434547 }
435548
436549
437550
551+
552+ ////////////////////////////////////////////////////////////////////////////
553+ // ENABLE QUERY BENCHMARKING
554+ ////////////////////////////////////////////////////////////////////////////
438555 public function benchmark ($ benchmark ) {
439556 $ this ->bench = $ benchmark ;
440557 }
441558
442559
443560
561+
562+ ////////////////////////////////////////////////////////////////////////////
563+ // GET THE APPLICATION SYNCED TIME
564+ ////////////////////////////////////////////////////////////////////////////
444565 public function time ($ source =false ) {
445566 if ($ source === false ) {
446567 if (is_object ($ this ->time )) return $ this ->time ->time ();
@@ -452,6 +573,10 @@ public function time($source=false) {
452573
453574
454575
576+
577+ ////////////////////////////////////////////////////////////////////////////
578+ // GET THE APPLICATION SYNCED MICRO-TIME
579+ ////////////////////////////////////////////////////////////////////////////
455580 public function microtime ($ source =false ) {
456581 if ($ source === false ) {
457582 if (is_object ($ this ->microtime )) return $ this ->microtime ->microtime ();
@@ -463,51 +588,84 @@ public function microtime($source=false) {
463588
464589
465590
591+
592+ ////////////////////////////////////////////////////////////////////////////
593+ // SET THE TIMEOUT VALUE
594+ ////////////////////////////////////////////////////////////////////////////
466595 public function timeout ($ timeout ) {}
467596
468597
469598
599+
600+ ////////////////////////////////////////////////////////////////////////////
601+ // GET THE DATABASE SERVER FOR THE ACTIVE CONNECTION
602+ ////////////////////////////////////////////////////////////////////////////
470603 public function server () {
471604 $ auth = $ this ->auth ();
472605 return $ auth ['server ' ];
473606 }
474607
475608
476609
610+
611+ ////////////////////////////////////////////////////////////////////////////
612+ // CHECK IF WE'RE IN STRING-GENERATOR MODE
613+ ////////////////////////////////////////////////////////////////////////////
477614 public function isString () {
478615 return end ($ this ->string );
479616 }
480617
481618
482619
620+
621+ ////////////////////////////////////////////////////////////////////////////
622+ // ENABLE STRING-GENERATOR MODE
623+ // PUDL WONT EXECUTE SQL QUERY AFTER GENERATING IT
624+ ////////////////////////////////////////////////////////////////////////////
483625 public function string () {
484626 $ this ->string [] = true ;
485627 return $ this ;
486628 }
487629
488630
489631
632+
633+ ////////////////////////////////////////////////////////////////////////////
634+ // DISABLE STRING-GENERATOR MODE
635+ ////////////////////////////////////////////////////////////////////////////
490636 public function destring () {
491637 array_pop ($ this ->string );
492638 return $ this ;
493639 }
494640
495641
496642
643+
644+ ////////////////////////////////////////////////////////////////////////////
645+ // SET THE NEXT QUERY TO BE A SUB-QUERY WITH "IN"
646+ ////////////////////////////////////////////////////////////////////////////
497647 public function in () {
498648 $ this ->string [] = ' IN ' ;
499649 return $ this ;
500650 }
501651
502652
503653
654+
655+ ////////////////////////////////////////////////////////////////////////////
656+ // SET THE NEXT QUERY TO BE A SUB-QUERY WITH "NOT IN"
657+ ////////////////////////////////////////////////////////////////////////////
504658 public function notIn () {
505659 $ this ->string [] = ' NOT IN ' ;
506660 return $ this ;
507661 }
508662
509663
510664
665+
666+ ////////////////////////////////////////////////////////////////////////////
667+ // SET A VARIABLE ON THE DATABASE SERVER
668+ ////////////////////////////////////////////////////////////////////////////
511669 public function set ($ variable , $ value , $ global =false ) {
512670 $ query = 'SET ' ;
513671 $ query .= $ this ->_value (new pudlGlobal ($ variable , $ global ));
@@ -519,6 +677,10 @@ public function set($variable, $value, $global=false) {
519677
520678
521679
680+
681+ ////////////////////////////////////////////////////////////////////////////
682+ // DATE/TIME
683+ ////////////////////////////////////////////////////////////////////////////
522684 public function datetime ($ time =false ) {
523685 if ($ time === false ) $ time = $ this ->time ();
524686
@@ -533,9 +695,8 @@ public function datetime($time=false) {
533695
534696
535697
536-
537698 ////////////////////////////////////////////////////////////////////////////
538- // GET THE LOCAL PATH OF THE PUDL LIBRARY
699+ // GET THE LOCAL FILE SYSTEM PATH OF THE PUDL LIBRARY
539700 ////////////////////////////////////////////////////////////////////////////
540701 public static function dir () {
541702 return __DIR__ ;
@@ -555,6 +716,17 @@ public static function dir() {
555716 /** @var array */ private $ listcache = [];
556717 /** @var mixed */ protected $ connection = NULL ;
557718 /** @var array */ protected $ string = [];
558- /** @var string */ public static $ version = 'PUDL 2.9.0 ' ;
719+
720+
721+
722+
723+ ////////////////////////////////////////////////////////////////////////////
724+ // PUDL VERSION INFORMATION
725+ ////////////////////////////////////////////////////////////////////////////
726+ const version = '2.9.1 ' ;
727+ const version_id = 20901 ;
728+ const version_major = 2 ;
729+ const version_minor = 9 ;
730+ const version_release = 1 ;
559731
560732}
0 commit comments