Something went wrong. Try again.
@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
Something went wrong. Try again.
1.8 kB · 97 lines
PHP
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798<?php
/** * @task format Formatting Query Clauses */abstract class PhabricatorQuery extends Phobject {
abstract public function execute();
/* -( Formatting Query Clauses )------------------------------------------- */
/** * @task format */ protected function formatWhereClause( AphrontDatabaseConnection $conn, array $parts) {
$parts = $this->flattenSubclause($parts); if (!$parts) { return qsprintf($conn, ''); }
return qsprintf($conn, 'WHERE %LA', $parts); }
/** * @task format */ protected function formatSelectClause( AphrontDatabaseConnection $conn, array $parts) {
$parts = $this->flattenSubclause($parts); if (!$parts) { throw new Exception(pht('Can not build empty SELECT clause!')); }
return qsprintf($conn, 'SELECT %LQ', $parts); }
/** * @task format */ protected function formatJoinClause( AphrontDatabaseConnection $conn, array $parts) {
$parts = $this->flattenSubclause($parts); if (!$parts) { return qsprintf($conn, ''); }
return qsprintf($conn, '%LJ', $parts); }
/** * @task format */ protected function formatHavingClause( AphrontDatabaseConnection $conn, array $parts) {
$parts = $this->flattenSubclause($parts); if (!$parts) { return qsprintf($conn, ''); }
return qsprintf($conn, 'HAVING %LA', $parts); }
/** * @task format */ private function flattenSubclause(array $parts) { $result = array(); foreach ($parts as $part) { if (is_array($part)) { foreach ($this->flattenSubclause($part) as $subpart) { $result[] = $subpart; } } else if (($part !== null) && strlen($part)) { $result[] = $part; } } return $result; }
}