overview.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <?php
  2. require( '../Kint.class.php' );
  3. $selectedTheme = isset( $_GET['theme'] ) ? $_GET['theme'] : 'original';
  4. $allowedThemes = array();
  5. $dh = opendir( '../view/compiled' );
  6. while ( ( $filename = readdir( $dh ) ) !== false ) {
  7. if ( strpos( $filename, '.css' ) !== false ) {
  8. $allowedThemes[] = str_replace( '.css', '', $filename );
  9. }
  10. }
  11. sort( $allowedThemes );
  12. if ( in_array( $selectedTheme, $allowedThemes ) ) {
  13. Kint::$theme = $selectedTheme;
  14. }
  15. class BaseUser
  16. {
  17. /**
  18. * @return string
  19. */
  20. public function getFullName() { }
  21. }
  22. class User extends BaseUser
  23. {
  24. CONST DEFAULT_PATH = 'some/default/path';
  25. CONST ROLE_DISALLOWED = 1;
  26. CONST ROLE_ALLOWED = 2;
  27. CONST ROLE_FORBIDDEN = 3;
  28. public $additionalData;
  29. private $username = 'demo_username';
  30. private $password = 'demo_password';
  31. private $createdDate;
  32. public function __construct() { }
  33. /**
  34. * Check is user is equal to another user
  35. */
  36. public function isEqualTo( BaseUser $user ) { }
  37. /**
  38. * Get data from this demo class
  39. *
  40. * @param string $username
  41. *
  42. * @return array
  43. */
  44. public function setUsername( $username ) { }
  45. /**
  46. * Set additional data
  47. *
  48. * @array $data
  49. */
  50. public function setAdditionalData( array $data ) { $this->additionalData = $data; }
  51. /**
  52. * @return \DateTime date object
  53. */
  54. public function getCreatedDate() { }
  55. /**
  56. * @param \DateTime $date
  57. */
  58. public function setCreatedDate( DateTime $date ) { $this->createdDate = $date; }
  59. /**
  60. * Dummy method that triggers trace
  61. */
  62. public function ensure() { Kint::trace(); }
  63. }
  64. class UserManager
  65. {
  66. private $user;
  67. /**
  68. * Get user from manager
  69. */
  70. public function getUser() { return $this->user; }
  71. /**
  72. * Debug specific user
  73. *
  74. * @param \User $user
  75. */
  76. public function debugUser( $user )
  77. {
  78. $this->user = $user;
  79. d( $this->getUser() );
  80. }
  81. /**
  82. * Ensure user (triggers ensure() method on \User object that trace)
  83. *
  84. * @void
  85. */
  86. public function ensureUser() { $this->user->ensure(); }
  87. }
  88. $user = new User;
  89. $user->setAdditionalData( array(
  90. 'last_login' => new DateTime(),
  91. 'current_unix_timestamp' => time(),
  92. 'random_rgb_color_code' => '#FF9900',
  93. 'impressions' => 60,
  94. 'nickname' => 'Someuser',
  95. )
  96. );
  97. $user->setCreatedDate( new DateTime( '2013-10-10' ) );
  98. $userManager = new UserManager();
  99. for ( $i = 1; $i < 6; $i++ ) {
  100. $tabularData[] = array(
  101. 'date' => "2013-01-0{$i}",
  102. 'allowed' => $i % 3 == 0,
  103. 'action' => "action {$i}",
  104. 'clicks' => rand( 100, 50000 ),
  105. 'impressions' => rand( 10000, 500000 ),
  106. );
  107. if ( $i % 2 == 0 ) {
  108. unset( $tabularData[ $i - 1 ]['clicks'] );
  109. }
  110. }
  111. $nestedArray = array();
  112. for ( $i = 1; $i < 6; $i++ ) {
  113. $nestedArray["user group {$i}"] = array(
  114. "user {$i}" => array(
  115. 'name' => "Name {$i}",
  116. 'surname' => "Surname {$i}"
  117. ),
  118. 'data' => array(
  119. 'conversions' => rand( 100, 5000 ),
  120. 'spent' => array( 'currency' => 'EUR', 'amount' => rand( 10000, 500000 ) )
  121. ),
  122. );
  123. }
  124. ?>
  125. <html>
  126. <head>
  127. <title>Kint PHP debugging tool - overview</title>
  128. </head>
  129. <body>
  130. <div>
  131. <label style="float: right">Switch theme:
  132. <select onchange="window.location = '?theme=' + this.value">
  133. <?php $chosen = isset( $_GET['theme'] ) ? $_GET['theme'] : 'original' ?>
  134. <?php foreach ( $allowedThemes as $theme ) : ?>
  135. <option value="<?php echo $theme ?>"<?php echo $theme === $chosen ? ' selected' : '' ?>>
  136. <?php echo ucfirst( str_replace( '-', ' ', $theme ) ) ?>
  137. </option>
  138. <?php endforeach ?>
  139. </select>
  140. </label>
  141. <h2>Kint PHP debugging tool - overview</h2>
  142. </div>
  143. <h3>Debug variables</h3>
  144. <?php
  145. $userManager->debugUser( $user );
  146. d( $userManager, $tabularData );
  147. d( $nestedArray );
  148. ?>
  149. <h3>Trace</h3>
  150. <?php $userManager->ensureUser(); ?>
  151. </body>
  152. </html>