code: protected function sort(&$array)
      {
          if (!$array) {
              return;
          }
          $sort = $this->abstracter->getCfg('objectSort');
          if ($sort == 'name') {
              // rather than a simple key sort, use array_multisort so that __construct is always first
              $sortData = array();
              foreach (\array_keys($array) as $name) {
                  $sortData[$name] = $name == '__construct'
                      ? '0'
                      : $name;
              }
              \array_multisort($sortData, $array);
          } elseif ($sort == 'visibility') {
              $sortVisOrder = array('public', 'protected', 'private', 'magic', 'magic-read', 'magic-write', 'debug');
              $sortData = array();
              foreach ($array as $name => $info) {
                  $sortData['name'][$name] = $name == '__construct'
                      ? '0'     // always place __construct at the top
                      : $name;
                  $vis = \is_array($info['visibility'])
                      ? $info['visibility'][0]
                      : $info['visibility'];
                  $sortData['vis'][$name] = \array_search($vis, $sortVisOrder);
              }
              \array_multisort($sortData['vis'], $sortData['name'], $array);
          }
      }
docs: Sorts property/method array by visibility or name
  
  @param array $array array to sort
  
  @return void