@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
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Generate expected schemata for Pholio, Phortune, Phragment, Phriction and Policy

Summary: Ref T1191. Nothing too out-of-the-ordinary here.

Test Plan: Saw fewer than 500 remaining issues.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: chad, epriestley, hach-que

Maniphest Tasks: T1191

Differential Revision: https://secure.phabricator.com/D10587

+320
+12
src/__phutil_library_map__.php
··· 2000 2000 'PhabricatorPolicyRuleLunarPhase' => 'applications/policy/rule/PhabricatorPolicyRuleLunarPhase.php', 2001 2001 'PhabricatorPolicyRuleProjects' => 'applications/policy/rule/PhabricatorPolicyRuleProjects.php', 2002 2002 'PhabricatorPolicyRuleUsers' => 'applications/policy/rule/PhabricatorPolicyRuleUsers.php', 2003 + 'PhabricatorPolicySchemaSpec' => 'applications/policy/storage/PhabricatorPolicySchemaSpec.php', 2003 2004 'PhabricatorPolicyTestCase' => 'applications/policy/__tests__/PhabricatorPolicyTestCase.php', 2004 2005 'PhabricatorPolicyTestObject' => 'applications/policy/__tests__/PhabricatorPolicyTestObject.php', 2005 2006 'PhabricatorPolicyType' => 'applications/policy/constants/PhabricatorPolicyType.php', ··· 2541 2542 'PholioMockViewController' => 'applications/pholio/controller/PholioMockViewController.php', 2542 2543 'PholioRemarkupRule' => 'applications/pholio/remarkup/PholioRemarkupRule.php', 2543 2544 'PholioReplyHandler' => 'applications/pholio/mail/PholioReplyHandler.php', 2545 + 'PholioSchemaSpec' => 'applications/pholio/storage/PholioSchemaSpec.php', 2544 2546 'PholioSearchIndexer' => 'applications/pholio/search/PholioSearchIndexer.php', 2545 2547 'PholioTransaction' => 'applications/pholio/storage/PholioTransaction.php', 2546 2548 'PholioTransactionComment' => 'applications/pholio/storage/PholioTransactionComment.php', ··· 2595 2597 'PhortunePurchase' => 'applications/phortune/storage/PhortunePurchase.php', 2596 2598 'PhortunePurchaseQuery' => 'applications/phortune/query/PhortunePurchaseQuery.php', 2597 2599 'PhortunePurchaseViewController' => 'applications/phortune/controller/PhortunePurchaseViewController.php', 2600 + 'PhortuneSchemaSpec' => 'applications/phortune/storage/PhortuneSchemaSpec.php', 2598 2601 'PhortuneStripePaymentProvider' => 'applications/phortune/provider/PhortuneStripePaymentProvider.php', 2599 2602 'PhortuneTestExtraPaymentProvider' => 'applications/phortune/provider/__tests__/PhortuneTestExtraPaymentProvider.php', 2600 2603 'PhortuneTestPaymentProvider' => 'applications/phortune/provider/PhortuneTestPaymentProvider.php', ··· 2618 2621 'PhragmentPolicyController' => 'applications/phragment/controller/PhragmentPolicyController.php', 2619 2622 'PhragmentQueryFragmentsConduitAPIMethod' => 'applications/phragment/conduit/PhragmentQueryFragmentsConduitAPIMethod.php', 2620 2623 'PhragmentRevertController' => 'applications/phragment/controller/PhragmentRevertController.php', 2624 + 'PhragmentSchemaSpec' => 'applications/phragment/storage/PhragmentSchemaSpec.php', 2621 2625 'PhragmentSnapshot' => 'applications/phragment/storage/PhragmentSnapshot.php', 2622 2626 'PhragmentSnapshotChild' => 'applications/phragment/storage/PhragmentSnapshotChild.php', 2623 2627 'PhragmentSnapshotChildQuery' => 'applications/phragment/query/PhragmentSnapshotChildQuery.php', ··· 2636 2640 'PhrequentListController' => 'applications/phrequent/controller/PhrequentListController.php', 2637 2641 'PhrequentPopConduitAPIMethod' => 'applications/phrequent/conduit/PhrequentPopConduitAPIMethod.php', 2638 2642 'PhrequentPushConduitAPIMethod' => 'applications/phrequent/conduit/PhrequentPushConduitAPIMethod.php', 2643 + 'PhrequentSchemaSpec' => 'applications/phrequent/storage/PhrequentSchemaSpec.php', 2639 2644 'PhrequentSearchEngine' => 'applications/phrequent/query/PhrequentSearchEngine.php', 2640 2645 'PhrequentTimeBlock' => 'applications/phrequent/storage/PhrequentTimeBlock.php', 2641 2646 'PhrequentTimeBlockTestCase' => 'applications/phrequent/storage/__tests__/PhrequentTimeBlockTestCase.php', ··· 2674 2679 'PhrictionMoveController' => 'applications/phriction/controller/PhrictionMoveController.php', 2675 2680 'PhrictionNewController' => 'applications/phriction/controller/PhrictionNewController.php', 2676 2681 'PhrictionRemarkupRule' => 'applications/phriction/markup/PhrictionRemarkupRule.php', 2682 + 'PhrictionSchemaSpec' => 'applications/phriction/storage/PhrictionSchemaSpec.php', 2677 2683 'PhrictionSearchEngine' => 'applications/phriction/query/PhrictionSearchEngine.php', 2678 2684 'PhrictionSearchIndexer' => 'applications/phriction/search/PhrictionSearchIndexer.php', 2679 2685 'PonderAddAnswerView' => 'applications/ponder/view/PonderAddAnswerView.php', ··· 4951 4957 'PhabricatorPolicyRuleLunarPhase' => 'PhabricatorPolicyRule', 4952 4958 'PhabricatorPolicyRuleProjects' => 'PhabricatorPolicyRule', 4953 4959 'PhabricatorPolicyRuleUsers' => 'PhabricatorPolicyRule', 4960 + 'PhabricatorPolicySchemaSpec' => 'PhabricatorConfigSchemaSpec', 4954 4961 'PhabricatorPolicyTestCase' => 'PhabricatorTestCase', 4955 4962 'PhabricatorPolicyTestObject' => 'PhabricatorPolicyInterface', 4956 4963 'PhabricatorPolicyType' => 'PhabricatorPolicyConstants', ··· 5564 5571 'PholioMockViewController' => 'PholioController', 5565 5572 'PholioRemarkupRule' => 'PhabricatorObjectRemarkupRule', 5566 5573 'PholioReplyHandler' => 'PhabricatorMailReplyHandler', 5574 + 'PholioSchemaSpec' => 'PhabricatorConfigSchemaSpec', 5567 5575 'PholioSearchIndexer' => 'PhabricatorSearchDocumentIndexer', 5568 5576 'PholioTransaction' => 'PhabricatorApplicationTransaction', 5569 5577 'PholioTransactionComment' => 'PhabricatorApplicationTransactionComment', ··· 5633 5641 ), 5634 5642 'PhortunePurchaseQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 5635 5643 'PhortunePurchaseViewController' => 'PhortuneController', 5644 + 'PhortuneSchemaSpec' => 'PhabricatorConfigSchemaSpec', 5636 5645 'PhortuneStripePaymentProvider' => 'PhortunePaymentProvider', 5637 5646 'PhortuneTestExtraPaymentProvider' => 'PhortunePaymentProvider', 5638 5647 'PhortuneTestPaymentProvider' => 'PhortunePaymentProvider', ··· 5662 5671 'PhragmentPolicyController' => 'PhragmentController', 5663 5672 'PhragmentQueryFragmentsConduitAPIMethod' => 'PhragmentConduitAPIMethod', 5664 5673 'PhragmentRevertController' => 'PhragmentController', 5674 + 'PhragmentSchemaSpec' => 'PhabricatorConfigSchemaSpec', 5665 5675 'PhragmentSnapshot' => array( 5666 5676 'PhragmentDAO', 5667 5677 'PhabricatorPolicyInterface', ··· 5686 5696 'PhrequentListController' => 'PhrequentController', 5687 5697 'PhrequentPopConduitAPIMethod' => 'PhrequentConduitAPIMethod', 5688 5698 'PhrequentPushConduitAPIMethod' => 'PhrequentConduitAPIMethod', 5699 + 'PhrequentSchemaSpec' => 'PhabricatorConfigSchemaSpec', 5689 5700 'PhrequentSearchEngine' => 'PhabricatorApplicationSearchEngine', 5690 5701 'PhrequentTimeBlock' => 'Phobject', 5691 5702 'PhrequentTimeBlockTestCase' => 'PhabricatorTestCase', ··· 5735 5746 'PhrictionMoveController' => 'PhrictionController', 5736 5747 'PhrictionNewController' => 'PhrictionController', 5737 5748 'PhrictionRemarkupRule' => 'PhutilRemarkupRule', 5749 + 'PhrictionSchemaSpec' => 'PhabricatorConfigSchemaSpec', 5738 5750 'PhrictionSearchEngine' => 'PhabricatorApplicationSearchEngine', 5739 5751 'PhrictionSearchIndexer' => 'PhabricatorSearchDocumentIndexer', 5740 5752 'PonderAddAnswerView' => 'AphrontView',
+18
src/applications/pholio/storage/PholioImage.php
··· 22 22 public function getConfiguration() { 23 23 return array( 24 24 self::CONFIG_AUX_PHID => true, 25 + self::CONFIG_COLUMN_SCHEMA => array( 26 + 'mockID' => 'id?', 27 + 'name' => 'text128', 28 + 'description' => 'text', 29 + 'sequence' => 'uint32', 30 + 'isObsolete' => 'bool', 31 + 'replacesImagePHID' => 'phid?', 32 + ), 33 + self::CONFIG_KEY_SCHEMA => array( 34 + 'key_phid' => null, 35 + 'keyPHID' => array( 36 + 'columns' => array('phid'), 37 + 'unique' => true, 38 + ), 39 + 'mockID' => array( 40 + 'columns' => array('mockID', 'isObsolete', 'sequence'), 41 + ), 42 + ), 25 43 ) + parent::getConfiguration(); 26 44 } 27 45
+17
src/applications/pholio/storage/PholioMock.php
··· 52 52 public function getConfiguration() { 53 53 return array( 54 54 self::CONFIG_AUX_PHID => true, 55 + self::CONFIG_COLUMN_SCHEMA => array( 56 + 'name' => 'text128', 57 + 'description' => 'text', 58 + 'originalName' => 'text128', 59 + 'mailKey' => 'bytes20', 60 + 'status' => 'text12', 61 + ), 62 + self::CONFIG_KEY_SCHEMA => array( 63 + 'key_phid' => null, 64 + 'phid' => array( 65 + 'columns' => array('phid'), 66 + 'unique' => true, 67 + ), 68 + 'authorPHID' => array( 69 + 'columns' => array('authorPHID'), 70 + ), 71 + ), 55 72 ) + parent::getConfiguration(); 56 73 } 57 74
+15
src/applications/pholio/storage/PholioSchemaSpec.php
··· 1 + <?php 2 + 3 + final class PholioSchemaSpec extends PhabricatorConfigSchemaSpec { 4 + 5 + public function buildSchemata() { 6 + $this->buildLiskSchemata('PholioDAO'); 7 + 8 + $this->buildEdgeSchemata(new PholioMock()); 9 + 10 + $this->buildTransactionSchema( 11 + new PholioTransaction(), 12 + new PholioTransactionComment()); 13 + } 14 + 15 + }
+20
src/applications/pholio/storage/PholioTransactionComment.php
··· 14 14 return new PholioTransaction(); 15 15 } 16 16 17 + public function getConfiguration() { 18 + $config = parent::getConfiguration(); 19 + 20 + $config[self::CONFIG_COLUMN_SCHEMA] = array( 21 + 'imageID' => 'id?', 22 + 'x' => 'uint32?', 23 + 'y' => 'uint32?', 24 + 'width' => 'uint32?', 25 + 'height' => 'uint32?', 26 + ) + $config[self::CONFIG_COLUMN_SCHEMA]; 27 + 28 + $config[self::CONFIG_KEY_SCHEMA] = array( 29 + 'key_draft' => array( 30 + 'columns' => array('authorPHID', 'imageID', 'transactionPHID'), 31 + ), 32 + ) + $config[self::CONFIG_KEY_SCHEMA]; 33 + 34 + return $config; 35 + } 36 + 17 37 public function toDictionary() { 18 38 return array( 19 39 'id' => $this->getID(),
+4
src/applications/phortune/storage/PhortuneAccount.php
··· 17 17 public function getConfiguration() { 18 18 return array( 19 19 self::CONFIG_AUX_PHID => true, 20 + self::CONFIG_COLUMN_SCHEMA => array( 21 + 'name' => 'text255', 22 + 'balanceInCents' => 'sint64', 23 + ), 20 24 ) + parent::getConfiguration(); 21 25 } 22 26
+8
src/applications/phortune/storage/PhortuneCart.php
··· 21 21 self::CONFIG_SERIALIZATION => array( 22 22 'metadata' => self::SERIALIZATION_JSON, 23 23 ), 24 + self::CONFIG_COLUMN_SCHEMA => array( 25 + 'status' => 'text32', 26 + ), 27 + self::CONFIG_KEY_SCHEMA => array( 28 + 'key_account' => array( 29 + 'columns' => array('accountPHID'), 30 + ), 31 + ), 24 32 ) + parent::getConfiguration(); 25 33 } 26 34
+14
src/applications/phortune/storage/PhortuneCharge.php
··· 33 33 self::CONFIG_SERIALIZATION => array( 34 34 'metadata' => self::SERIALIZATION_JSON, 35 35 ), 36 + self::CONFIG_COLUMN_SCHEMA => array( 37 + 'paymentProviderKey' => 'text128', 38 + 'paymentMethodPHID' => 'phid?', 39 + 'amountInCents' => 'sint32', 40 + 'status' => 'text32', 41 + ), 42 + self::CONFIG_KEY_SCHEMA => array( 43 + 'key_cart' => array( 44 + 'columns' => array('cartPHID'), 45 + ), 46 + 'key_account' => array( 47 + 'columns' => array('accountPHID'), 48 + ), 49 + ), 36 50 ) + parent::getConfiguration(); 37 51 } 38 52
+14
src/applications/phortune/storage/PhortunePaymentMethod.php
··· 29 29 self::CONFIG_SERIALIZATION => array( 30 30 'metadata' => self::SERIALIZATION_JSON, 31 31 ), 32 + self::CONFIG_COLUMN_SCHEMA => array( 33 + 'name' => 'text255', 34 + 'status' => 'text64', 35 + 'brand' => 'text64', 36 + 'expires' => 'text16', 37 + 'providerType' => 'text16', 38 + 'providerDomain' => 'text64', 39 + 'lastFourDigits' => 'text16', 40 + ), 41 + self::CONFIG_KEY_SCHEMA => array( 42 + 'key_account' => array( 43 + 'columns' => array('accountPHID', 'status'), 44 + ), 45 + ), 32 46 ) + parent::getConfiguration(); 33 47 } 34 48
+13
src/applications/phortune/storage/PhortuneProduct.php
··· 27 27 self::CONFIG_SERIALIZATION => array( 28 28 'metadata' => self::SERIALIZATION_JSON, 29 29 ), 30 + self::CONFIG_COLUMN_SCHEMA => array( 31 + 'productName' => 'text255', 32 + 'productType' => 'text64', 33 + 'status' => 'text64', 34 + 'priceInCents' => 'sint64', 35 + 'billingIntervalInMonths' => 'uint32?', 36 + 'trialPeriodInDays' => 'uint32?', 37 + ), 38 + self::CONFIG_KEY_SCHEMA => array( 39 + 'key_status' => array( 40 + 'columns' => array('status'), 41 + ), 42 + ), 30 43 ) + parent::getConfiguration(); 31 44 } 32 45
+12
src/applications/phortune/storage/PhortunePurchase.php
··· 31 31 self::CONFIG_SERIALIZATION => array( 32 32 'metadata' => self::SERIALIZATION_JSON, 33 33 ), 34 + self::CONFIG_COLUMN_SCHEMA => array( 35 + 'cartPHID' => 'phid?', 36 + 'basePriceInCents' => 'sint32', 37 + 'quantity' => 'uint32', 38 + 'totalPriceInCents' => 'sint32', 39 + 'status' => 'text32', 40 + ), 41 + self::CONFIG_KEY_SCHEMA => array( 42 + 'key_cart' => array( 43 + 'columns' => array('cartPHID'), 44 + ), 45 + ), 34 46 ) + parent::getConfiguration(); 35 47 } 36 48
+17
src/applications/phortune/storage/PhortuneSchemaSpec.php
··· 1 + <?php 2 + 3 + final class PhortuneSchemaSpec extends PhabricatorConfigSchemaSpec { 4 + 5 + public function buildSchemata() { 6 + $this->buildLiskSchemata('PhortuneDAO'); 7 + 8 + $this->buildEdgeSchemata(new PhortuneAccount()); 9 + 10 + $this->buildTransactionSchema( 11 + new PhortuneAccountTransaction()); 12 + 13 + $this->buildTransactionSchema( 14 + new PhortuneProductTransaction()); 15 + } 16 + 17 + }
+11
src/applications/phragment/storage/PhragmentFragment.php
··· 14 14 public function getConfiguration() { 15 15 return array( 16 16 self::CONFIG_AUX_PHID => true, 17 + self::CONFIG_COLUMN_SCHEMA => array( 18 + 'path' => 'text255', 19 + 'depth' => 'uint32', 20 + 'latestVersionPHID' => 'phid?', 21 + ), 22 + self::CONFIG_KEY_SCHEMA => array( 23 + 'key_path' => array( 24 + 'columns' => array('path'), 25 + 'unique' => true, 26 + ), 27 + ), 17 28 ) + parent::getConfiguration(); 18 29 } 19 30
+10
src/applications/phragment/storage/PhragmentFragmentVersion.php
··· 13 13 public function getConfiguration() { 14 14 return array( 15 15 self::CONFIG_AUX_PHID => true, 16 + self::CONFIG_COLUMN_SCHEMA => array( 17 + 'sequence' => 'uint32', 18 + 'filePHID' => 'phid?', 19 + ), 20 + self::CONFIG_KEY_SCHEMA => array( 21 + 'key_version' => array( 22 + 'columns' => array('fragmentPHID', 'sequence'), 23 + 'unique' => true, 24 + ), 25 + ), 16 26 ) + parent::getConfiguration(); 17 27 } 18 28
+11
src/applications/phragment/storage/PhragmentSchemaSpec.php
··· 1 + <?php 2 + 3 + final class PhragmentSchemaSpec extends PhabricatorConfigSchemaSpec { 4 + 5 + public function buildSchemata() { 6 + $this->buildLiskSchemata('PhragmentDAO'); 7 + 8 + $this->buildEdgeSchemata(new PhragmentFragment()); 9 + } 10 + 11 + }
+9
src/applications/phragment/storage/PhragmentSnapshot.php
··· 11 11 public function getConfiguration() { 12 12 return array( 13 13 self::CONFIG_AUX_PHID => true, 14 + self::CONFIG_COLUMN_SCHEMA => array( 15 + 'name' => 'text255', 16 + ), 17 + self::CONFIG_KEY_SCHEMA => array( 18 + 'key_name' => array( 19 + 'columns' => array('primaryFragmentPHID', 'name'), 20 + 'unique' => true, 21 + ), 22 + ), 14 23 ) + parent::getConfiguration(); 15 24 } 16 25
+18
src/applications/phragment/storage/PhragmentSnapshotChild.php
··· 11 11 private $fragment = self::ATTACHABLE; 12 12 private $fragmentVersion = self::ATTACHABLE; 13 13 14 + public function getConfiguration() { 15 + return array( 16 + self::CONFIG_COLUMN_SCHEMA => array( 17 + 'fragmentVersionPHID' => 'phid?', 18 + ), 19 + self::CONFIG_KEY_SCHEMA => array( 20 + 'key_child' => array( 21 + 'columns' => array( 22 + 'snapshotPHID', 23 + 'fragmentPHID', 24 + 'fragmentVersionPHID', 25 + ), 26 + 'unique' => true, 27 + ), 28 + ), 29 + ) + parent::getConfiguration(); 30 + } 31 + 14 32 public function getSnapshot() { 15 33 return $this->assertAttached($this->snapshot); 16 34 }
+9
src/applications/phrequent/storage/PhrequentSchemaSpec.php
··· 1 + <?php 2 + 3 + final class PhrequentSchemaSpec extends PhabricatorConfigSchemaSpec { 4 + 5 + public function buildSchemata() { 6 + $this->buildLiskSchemata('PhrequentDAO'); 7 + } 8 + 9 + }
+11
src/applications/phrequent/storage/PhrequentUserTime.php
··· 11 11 12 12 private $preemptingEvents = self::ATTACHABLE; 13 13 14 + public function getConfiguration() { 15 + return array( 16 + self::CONFIG_COLUMN_SCHEMA => array( 17 + 'objectPHID' => 'phid?', 18 + 'note' => 'text?', 19 + 'dateStarted' => 'epoch', 20 + 'dateEnded' => 'epoch?', 21 + ), 22 + ) + parent::getConfiguration(); 23 + } 24 + 14 25 public function getCapabilities() { 15 26 return array( 16 27 PhabricatorPolicyCapability::CAN_VIEW,
+26
src/applications/phriction/storage/PhrictionContent.php
··· 28 28 $viewer); 29 29 } 30 30 31 + public function getConfiguration() { 32 + return array( 33 + self::CONFIG_COLUMN_SCHEMA => array( 34 + 'version' => 'uint32', 35 + 'title' => 'text', 36 + 'slug' => 'text128', 37 + 'content' => 'text', 38 + 'description' => 'text', 39 + 'changeType' => 'uint32', 40 + 'changeRef' => 'uint32?', 41 + ), 42 + self::CONFIG_KEY_SCHEMA => array( 43 + 'documentID' => array( 44 + 'columns' => array('documentID', 'version'), 45 + 'unique' => true, 46 + ), 47 + 'authorPHID' => array( 48 + 'columns' => array('authorPHID'), 49 + ), 50 + 'slug' => array( 51 + 'columns' => array('slug(255)'), 52 + ), 53 + ), 54 + ) + parent::getConfiguration(); 55 + } 56 + 31 57 32 58 /* -( Markup Interface )--------------------------------------------------- */ 33 59
+21
src/applications/phriction/storage/PhrictionDocument.php
··· 24 24 return array( 25 25 self::CONFIG_AUX_PHID => true, 26 26 self::CONFIG_TIMESTAMPS => false, 27 + self::CONFIG_COLUMN_SCHEMA => array( 28 + 'slug' => 'text128', 29 + 'depth' => 'uint32', 30 + 'contentID' => 'id?', 31 + 'status' => 'uint32', 32 + ), 33 + self::CONFIG_KEY_SCHEMA => array( 34 + 'key_phid' => null, 35 + 'phid' => array( 36 + 'columns' => array('phid'), 37 + 'unique' => true, 38 + ), 39 + 'slug' => array( 40 + 'columns' => array('slug'), 41 + 'unique' => true, 42 + ), 43 + 'depth' => array( 44 + 'columns' => array('depth', 'slug'), 45 + 'unique' => true, 46 + ), 47 + ), 27 48 ) + parent::getConfiguration(); 28 49 } 29 50
+11
src/applications/phriction/storage/PhrictionSchemaSpec.php
··· 1 + <?php 2 + 3 + final class PhrictionSchemaSpec extends PhabricatorConfigSchemaSpec { 4 + 5 + public function buildSchemata() { 6 + $this->buildLiskSchemata('PhrictionDAO'); 7 + 8 + $this->buildEdgeSchemata(new PhrictionDocument()); 9 + } 10 + 11 + }
+10
src/applications/policy/storage/PhabricatorPolicy.php
··· 25 25 self::CONFIG_SERIALIZATION => array( 26 26 'rules' => self::SERIALIZATION_JSON, 27 27 ), 28 + self::CONFIG_COLUMN_SCHEMA => array( 29 + 'defaultAction' => 'text32', 30 + ), 31 + self::CONFIG_KEY_SCHEMA => array( 32 + 'key_phid' => null, 33 + 'phid' => array( 34 + 'columns' => array('phid'), 35 + 'unique' => true, 36 + ), 37 + ), 28 38 ) + parent::getConfiguration(); 29 39 } 30 40
+9
src/applications/policy/storage/PhabricatorPolicySchemaSpec.php
··· 1 + <?php 2 + 3 + final class PhabricatorPolicySchemaSpec extends PhabricatorConfigSchemaSpec { 4 + 5 + public function buildSchemata() { 6 + $this->buildLiskSchemata('PhabricatorPolicyDAO'); 7 + } 8 + 9 + }