From 08a19f35f07c1feb63e4fd51cbc10ef4f02981a3 Mon Sep 17 00:00:00 2001 From: epriestley Date: Fri, 22 Jul 2016 06:20:44 -0700 Subject: [PATCH] Add basic search capabilities to Packages Summary: Ref T8116. Add search-by-name and per-package / per-publisher search to Packages. Test Plan: Searched publishers, packages, versions by name. Searched packages by publisher. Searched versions by package. Reviewers: chad Reviewed By: chad Maniphest Tasks: T8116 Differential Revision: https://secure.phabricator.com/D16320 --- .../20160722.pack.01.pubngrams.sql | 7 ++++++ .../20160722.pack.02.pkgngrams.sql | 7 ++++++ .../20160722.pack.03.versionngrams.sql | 7 ++++++ src/__phutil_library_map__.php | 11 ++++++++++ .../editor/PhabricatorPackagesEditor.php | 10 +++++++++ .../PhabricatorPackagesPackageEditor.php | 6 ----- .../PhabricatorPackagesPublisherEditor.php | 6 ----- .../PhabricatorPackagesVersionEditor.php | 6 ----- .../query/PhabricatorPackagesPackageQuery.php | 8 ++++++- ...PhabricatorPackagesPackageSearchEngine.php | 21 +++++++++++++++++- .../PhabricatorPackagesPublisherQuery.php | 16 +++++++++++--- ...abricatorPackagesPublisherSearchEngine.php | 11 +++++++++- .../query/PhabricatorPackagesVersionQuery.php | 6 +++++ ...PhabricatorPackagesVersionSearchEngine.php | 22 +++++++++++++++++-- .../storage/PhabricatorPackagesNgrams.php | 10 +++++++++ .../storage/PhabricatorPackagesPackage.php | 16 ++++++++++++-- .../PhabricatorPackagesPackageNameNgrams.php | 14 ++++++++++++ .../storage/PhabricatorPackagesPublisher.php | 16 ++++++++++++-- ...PhabricatorPackagesPublisherNameNgrams.php | 14 ++++++++++++ .../storage/PhabricatorPackagesVersion.php | 14 +++++++++++- .../PhabricatorPackagesVersionNameNgrams.php | 14 ++++++++++++ .../PhabricatorPackagesPackageDatasource.php | 2 +- 22 files changed, 212 insertions(+), 32 deletions(-) create mode 100644 resources/sql/autopatches/20160722.pack.01.pubngrams.sql create mode 100644 resources/sql/autopatches/20160722.pack.02.pkgngrams.sql create mode 100644 resources/sql/autopatches/20160722.pack.03.versionngrams.sql create mode 100644 src/applications/packages/storage/PhabricatorPackagesNgrams.php create mode 100644 src/applications/packages/storage/PhabricatorPackagesPackageNameNgrams.php create mode 100644 src/applications/packages/storage/PhabricatorPackagesPublisherNameNgrams.php create mode 100644 src/applications/packages/storage/PhabricatorPackagesVersionNameNgrams.php diff --git a/resources/sql/autopatches/20160722.pack.01.pubngrams.sql b/resources/sql/autopatches/20160722.pack.01.pubngrams.sql new file mode 100644 index 0000000000..956ec58e8b --- /dev/null +++ b/resources/sql/autopatches/20160722.pack.01.pubngrams.sql @@ -0,0 +1,7 @@ +CREATE TABLE {$NAMESPACE}_packages.packages_publishername_ngrams ( + id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + objectID INT UNSIGNED NOT NULL, + ngram CHAR(3) NOT NULL COLLATE {$COLLATE_TEXT}, + KEY `key_object` (objectID), + KEY `key_ngram` (ngram, objectID) +) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT}; diff --git a/resources/sql/autopatches/20160722.pack.02.pkgngrams.sql b/resources/sql/autopatches/20160722.pack.02.pkgngrams.sql new file mode 100644 index 0000000000..514482539a --- /dev/null +++ b/resources/sql/autopatches/20160722.pack.02.pkgngrams.sql @@ -0,0 +1,7 @@ +CREATE TABLE {$NAMESPACE}_packages.packages_packagename_ngrams ( + id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + objectID INT UNSIGNED NOT NULL, + ngram CHAR(3) NOT NULL COLLATE {$COLLATE_TEXT}, + KEY `key_object` (objectID), + KEY `key_ngram` (ngram, objectID) +) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT}; diff --git a/resources/sql/autopatches/20160722.pack.03.versionngrams.sql b/resources/sql/autopatches/20160722.pack.03.versionngrams.sql new file mode 100644 index 0000000000..a5f85f546b --- /dev/null +++ b/resources/sql/autopatches/20160722.pack.03.versionngrams.sql @@ -0,0 +1,7 @@ +CREATE TABLE {$NAMESPACE}_packages.packages_versionname_ngrams ( + id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + objectID INT UNSIGNED NOT NULL, + ngram CHAR(3) NOT NULL COLLATE {$COLLATE_TEXT}, + KEY `key_object` (objectID), + KEY `key_ngram` (ngram, objectID) +) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT}; diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index 6190d055c9..3a4d0df442 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -2978,6 +2978,7 @@ phutil_register_library_map(array( 'PhabricatorPackagesDAO' => 'applications/packages/storage/PhabricatorPackagesDAO.php', 'PhabricatorPackagesEditEngine' => 'applications/packages/editor/PhabricatorPackagesEditEngine.php', 'PhabricatorPackagesEditor' => 'applications/packages/editor/PhabricatorPackagesEditor.php', + 'PhabricatorPackagesNgrams' => 'applications/packages/storage/PhabricatorPackagesNgrams.php', 'PhabricatorPackagesPackage' => 'applications/packages/storage/PhabricatorPackagesPackage.php', 'PhabricatorPackagesPackageController' => 'applications/packages/controller/PhabricatorPackagesPackageController.php', 'PhabricatorPackagesPackageDatasource' => 'applications/packages/typeahead/PhabricatorPackagesPackageDatasource.php', @@ -2989,6 +2990,7 @@ phutil_register_library_map(array( 'PhabricatorPackagesPackageEditor' => 'applications/packages/editor/PhabricatorPackagesPackageEditor.php', 'PhabricatorPackagesPackageKeyTransaction' => 'applications/packages/xaction/package/PhabricatorPackagesPackageKeyTransaction.php', 'PhabricatorPackagesPackageListController' => 'applications/packages/controller/PhabricatorPackagesPackageListController.php', + 'PhabricatorPackagesPackageNameNgrams' => 'applications/packages/storage/PhabricatorPackagesPackageNameNgrams.php', 'PhabricatorPackagesPackageNameTransaction' => 'applications/packages/xaction/package/PhabricatorPackagesPackageNameTransaction.php', 'PhabricatorPackagesPackagePHIDType' => 'applications/packages/phid/PhabricatorPackagesPackagePHIDType.php', 'PhabricatorPackagesPackagePublisherTransaction' => 'applications/packages/xaction/package/PhabricatorPackagesPackagePublisherTransaction.php', @@ -3009,6 +3011,7 @@ phutil_register_library_map(array( 'PhabricatorPackagesPublisherEditor' => 'applications/packages/editor/PhabricatorPackagesPublisherEditor.php', 'PhabricatorPackagesPublisherKeyTransaction' => 'applications/packages/xaction/publisher/PhabricatorPackagesPublisherKeyTransaction.php', 'PhabricatorPackagesPublisherListController' => 'applications/packages/controller/PhabricatorPackagesPublisherListController.php', + 'PhabricatorPackagesPublisherNameNgrams' => 'applications/packages/storage/PhabricatorPackagesPublisherNameNgrams.php', 'PhabricatorPackagesPublisherNameTransaction' => 'applications/packages/xaction/publisher/PhabricatorPackagesPublisherNameTransaction.php', 'PhabricatorPackagesPublisherPHIDType' => 'applications/packages/phid/PhabricatorPackagesPublisherPHIDType.php', 'PhabricatorPackagesPublisherQuery' => 'applications/packages/query/PhabricatorPackagesPublisherQuery.php', @@ -3028,6 +3031,7 @@ phutil_register_library_map(array( 'PhabricatorPackagesVersionEditEngine' => 'applications/packages/editor/PhabricatorPackagesVersionEditEngine.php', 'PhabricatorPackagesVersionEditor' => 'applications/packages/editor/PhabricatorPackagesVersionEditor.php', 'PhabricatorPackagesVersionListController' => 'applications/packages/controller/PhabricatorPackagesVersionListController.php', + 'PhabricatorPackagesVersionNameNgrams' => 'applications/packages/storage/PhabricatorPackagesVersionNameNgrams.php', 'PhabricatorPackagesVersionNameTransaction' => 'applications/packages/xaction/version/PhabricatorPackagesVersionNameTransaction.php', 'PhabricatorPackagesVersionPHIDType' => 'applications/packages/phid/PhabricatorPackagesVersionPHIDType.php', 'PhabricatorPackagesVersionPackageTransaction' => 'applications/packages/xaction/version/PhabricatorPackagesVersionPackageTransaction.php', @@ -7797,6 +7801,7 @@ phutil_register_library_map(array( 'PhabricatorPackagesDAO' => 'PhabricatorLiskDAO', 'PhabricatorPackagesEditEngine' => 'PhabricatorEditEngine', 'PhabricatorPackagesEditor' => 'PhabricatorApplicationTransactionEditor', + 'PhabricatorPackagesNgrams' => 'PhabricatorSearchNgrams', 'PhabricatorPackagesPackage' => array( 'PhabricatorPackagesDAO', 'PhabricatorPolicyInterface', @@ -7805,6 +7810,7 @@ phutil_register_library_map(array( 'PhabricatorSubscribableInterface', 'PhabricatorProjectInterface', 'PhabricatorConduitResultInterface', + 'PhabricatorNgramsInterface', ), 'PhabricatorPackagesPackageController' => 'PhabricatorPackagesController', 'PhabricatorPackagesPackageDatasource' => 'PhabricatorTypeaheadDatasource', @@ -7816,6 +7822,7 @@ phutil_register_library_map(array( 'PhabricatorPackagesPackageEditor' => 'PhabricatorPackagesEditor', 'PhabricatorPackagesPackageKeyTransaction' => 'PhabricatorPackagesPackageTransactionType', 'PhabricatorPackagesPackageListController' => 'PhabricatorPackagesPackageController', + 'PhabricatorPackagesPackageNameNgrams' => 'PhabricatorPackagesNgrams', 'PhabricatorPackagesPackageNameTransaction' => 'PhabricatorPackagesPackageTransactionType', 'PhabricatorPackagesPackagePHIDType' => 'PhabricatorPHIDType', 'PhabricatorPackagesPackagePublisherTransaction' => 'PhabricatorPackagesPackageTransactionType', @@ -7834,6 +7841,7 @@ phutil_register_library_map(array( 'PhabricatorSubscribableInterface', 'PhabricatorProjectInterface', 'PhabricatorConduitResultInterface', + 'PhabricatorNgramsInterface', ), 'PhabricatorPackagesPublisherController' => 'PhabricatorPackagesController', 'PhabricatorPackagesPublisherDatasource' => 'PhabricatorTypeaheadDatasource', @@ -7844,6 +7852,7 @@ phutil_register_library_map(array( 'PhabricatorPackagesPublisherEditor' => 'PhabricatorPackagesEditor', 'PhabricatorPackagesPublisherKeyTransaction' => 'PhabricatorPackagesPublisherTransactionType', 'PhabricatorPackagesPublisherListController' => 'PhabricatorPackagesPublisherController', + 'PhabricatorPackagesPublisherNameNgrams' => 'PhabricatorPackagesNgrams', 'PhabricatorPackagesPublisherNameTransaction' => 'PhabricatorPackagesPublisherTransactionType', 'PhabricatorPackagesPublisherPHIDType' => 'PhabricatorPHIDType', 'PhabricatorPackagesPublisherQuery' => 'PhabricatorPackagesQuery', @@ -7865,6 +7874,7 @@ phutil_register_library_map(array( 'PhabricatorSubscribableInterface', 'PhabricatorProjectInterface', 'PhabricatorConduitResultInterface', + 'PhabricatorNgramsInterface', ), 'PhabricatorPackagesVersionController' => 'PhabricatorPackagesController', 'PhabricatorPackagesVersionEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod', @@ -7872,6 +7882,7 @@ phutil_register_library_map(array( 'PhabricatorPackagesVersionEditEngine' => 'PhabricatorPackagesEditEngine', 'PhabricatorPackagesVersionEditor' => 'PhabricatorPackagesEditor', 'PhabricatorPackagesVersionListController' => 'PhabricatorPackagesVersionController', + 'PhabricatorPackagesVersionNameNgrams' => 'PhabricatorPackagesNgrams', 'PhabricatorPackagesVersionNameTransaction' => 'PhabricatorPackagesVersionTransactionType', 'PhabricatorPackagesVersionPHIDType' => 'PhabricatorPHIDType', 'PhabricatorPackagesVersionPackageTransaction' => 'PhabricatorPackagesVersionTransactionType', diff --git a/src/applications/packages/editor/PhabricatorPackagesEditor.php b/src/applications/packages/editor/PhabricatorPackagesEditor.php index 5454ba92f4..0065791ad7 100644 --- a/src/applications/packages/editor/PhabricatorPackagesEditor.php +++ b/src/applications/packages/editor/PhabricatorPackagesEditor.php @@ -7,4 +7,14 @@ abstract class PhabricatorPackagesEditor return 'PhabricatorPasteApplication'; } + protected function supportsSearch() { + return true; + } + + protected function shouldPublishFeedStory( + PhabricatorLiskDAO $object, + array $xactions) { + return true; + } + } diff --git a/src/applications/packages/editor/PhabricatorPackagesPackageEditor.php b/src/applications/packages/editor/PhabricatorPackagesPackageEditor.php index 1446fa3cac..241981d706 100644 --- a/src/applications/packages/editor/PhabricatorPackagesPackageEditor.php +++ b/src/applications/packages/editor/PhabricatorPackagesPackageEditor.php @@ -24,12 +24,6 @@ final class PhabricatorPackagesPackageEditor return $types; } - protected function shouldPublishFeedStory( - PhabricatorLiskDAO $object, - array $xactions) { - return true; - } - protected function getMailTo(PhabricatorLiskDAO $object) { return array(); } diff --git a/src/applications/packages/editor/PhabricatorPackagesPublisherEditor.php b/src/applications/packages/editor/PhabricatorPackagesPublisherEditor.php index 6e8fb7caf3..5cadb6329f 100644 --- a/src/applications/packages/editor/PhabricatorPackagesPublisherEditor.php +++ b/src/applications/packages/editor/PhabricatorPackagesPublisherEditor.php @@ -21,12 +21,6 @@ final class PhabricatorPackagesPublisherEditor return $types; } - protected function shouldPublishFeedStory( - PhabricatorLiskDAO $object, - array $xactions) { - return true; - } - protected function getMailTo(PhabricatorLiskDAO $object) { return array(); } diff --git a/src/applications/packages/editor/PhabricatorPackagesVersionEditor.php b/src/applications/packages/editor/PhabricatorPackagesVersionEditor.php index 34ab962fb5..72bde82738 100644 --- a/src/applications/packages/editor/PhabricatorPackagesVersionEditor.php +++ b/src/applications/packages/editor/PhabricatorPackagesVersionEditor.php @@ -15,12 +15,6 @@ final class PhabricatorPackagesVersionEditor return pht('%s created %s.', $author, $object); } - protected function shouldPublishFeedStory( - PhabricatorLiskDAO $object, - array $xactions) { - return true; - } - protected function getMailTo(PhabricatorLiskDAO $object) { return array(); } diff --git a/src/applications/packages/query/PhabricatorPackagesPackageQuery.php b/src/applications/packages/query/PhabricatorPackagesPackageQuery.php index a0e325c453..67cd3954c9 100644 --- a/src/applications/packages/query/PhabricatorPackagesPackageQuery.php +++ b/src/applications/packages/query/PhabricatorPackagesPackageQuery.php @@ -34,6 +34,12 @@ final class PhabricatorPackagesPackageQuery return $this; } + public function withNameNgrams($ngrams) { + return $this->withNgramsConstraint( + new PhabricatorPackagesPackageNameNgrams(), + $ngrams); + } + public function newResultObject() { return new PhabricatorPackagesPackage(); } @@ -62,7 +68,7 @@ final class PhabricatorPackagesPackageQuery if ($this->publisherPHIDs !== null) { $where[] = qsprintf( $conn, - 'p.phid IN (%Ls)', + 'p.publisherPHID IN (%Ls)', $this->publisherPHIDs); } diff --git a/src/applications/packages/query/PhabricatorPackagesPackageSearchEngine.php b/src/applications/packages/query/PhabricatorPackagesPackageSearchEngine.php index 38fd264276..2ba031b057 100644 --- a/src/applications/packages/query/PhabricatorPackagesPackageSearchEngine.php +++ b/src/applications/packages/query/PhabricatorPackagesPackageSearchEngine.php @@ -18,11 +18,30 @@ final class PhabricatorPackagesPackageSearchEngine protected function buildQueryFromParameters(array $map) { $query = $this->newQuery(); + if ($map['match'] !== null) { + $query->withNameNgrams($map['match']); + } + + if ($map['publisherPHIDs']) { + $query->withPublisherPHIDs($map['publisherPHIDs']); + } + return $query; } protected function buildCustomSearchFields() { - return array(); + return array( + id(new PhabricatorSearchTextField()) + ->setLabel(pht('Name Contains')) + ->setKey('match') + ->setDescription(pht('Search for packages by name substring.')), + id(new PhabricatorSearchDatasourceField()) + ->setLabel(pht('Publishers')) + ->setKey('publisherPHIDs') + ->setAliases(array('publisherPHID', 'publisher', 'publishers')) + ->setDatasource(new PhabricatorPackagesPublisherDatasource()) + ->setDescription(pht('Search for packages by publisher.')), + ); } protected function getURI($path) { diff --git a/src/applications/packages/query/PhabricatorPackagesPublisherQuery.php b/src/applications/packages/query/PhabricatorPackagesPublisherQuery.php index 81a72a923c..d46535c20d 100644 --- a/src/applications/packages/query/PhabricatorPackagesPublisherQuery.php +++ b/src/applications/packages/query/PhabricatorPackagesPublisherQuery.php @@ -22,6 +22,12 @@ final class PhabricatorPackagesPublisherQuery return $this; } + public function withNameNgrams($ngrams) { + return $this->withNgramsConstraint( + new PhabricatorPackagesPublisherNameNgrams(), + $ngrams); + } + public function newResultObject() { return new PhabricatorPackagesPublisher(); } @@ -36,25 +42,29 @@ final class PhabricatorPackagesPublisherQuery if ($this->ids !== null) { $where[] = qsprintf( $conn, - 'id IN (%Ld)', + 'u.id IN (%Ld)', $this->ids); } if ($this->phids !== null) { $where[] = qsprintf( $conn, - 'phid IN (%Ls)', + 'u.phid IN (%Ls)', $this->phids); } if ($this->publisherKeys !== null) { $where[] = qsprintf( $conn, - 'publisherKey IN (%Ls)', + 'u.publisherKey IN (%Ls)', $this->publisherKeys); } return $where; } + protected function getPrimaryTableAlias() { + return 'u'; + } + } diff --git a/src/applications/packages/query/PhabricatorPackagesPublisherSearchEngine.php b/src/applications/packages/query/PhabricatorPackagesPublisherSearchEngine.php index 8d44c45ac2..4914fbef9e 100644 --- a/src/applications/packages/query/PhabricatorPackagesPublisherSearchEngine.php +++ b/src/applications/packages/query/PhabricatorPackagesPublisherSearchEngine.php @@ -18,11 +18,20 @@ final class PhabricatorPackagesPublisherSearchEngine protected function buildQueryFromParameters(array $map) { $query = $this->newQuery(); + if ($map['match'] !== null) { + $query->withNameNgrams($map['match']); + } + return $query; } protected function buildCustomSearchFields() { - return array(); + return array( + id(new PhabricatorSearchTextField()) + ->setLabel(pht('Name Contains')) + ->setKey('match') + ->setDescription(pht('Search for publishers by name substring.')), + ); } protected function getURI($path) { diff --git a/src/applications/packages/query/PhabricatorPackagesVersionQuery.php b/src/applications/packages/query/PhabricatorPackagesVersionQuery.php index 5dad6878b9..6f417e2f77 100644 --- a/src/applications/packages/query/PhabricatorPackagesVersionQuery.php +++ b/src/applications/packages/query/PhabricatorPackagesVersionQuery.php @@ -34,6 +34,12 @@ final class PhabricatorPackagesVersionQuery return $this; } + public function withNameNgrams($ngrams) { + return $this->withNgramsConstraint( + new PhabricatorPackagesVersionNameNgrams(), + $ngrams); + } + public function newResultObject() { return new PhabricatorPackagesVersion(); } diff --git a/src/applications/packages/query/PhabricatorPackagesVersionSearchEngine.php b/src/applications/packages/query/PhabricatorPackagesVersionSearchEngine.php index 40cc42f920..368e7bf02f 100644 --- a/src/applications/packages/query/PhabricatorPackagesVersionSearchEngine.php +++ b/src/applications/packages/query/PhabricatorPackagesVersionSearchEngine.php @@ -18,13 +18,31 @@ final class PhabricatorPackagesVersionSearchEngine protected function buildQueryFromParameters(array $map) { $query = $this->newQuery(); + if ($map['match'] !== null) { + $query->withNameNgrams($map['match']); + } + + if ($map['packagePHIDs']) { + $query->withPackagePHIDs($map['packagePHIDs']); + } + return $query; } protected function buildCustomSearchFields() { - return array(); + return array( + id(new PhabricatorSearchTextField()) + ->setLabel(pht('Name Contains')) + ->setKey('match') + ->setDescription(pht('Search for versions by name substring.')), + id(new PhabricatorSearchDatasourceField()) + ->setLabel(pht('Packages')) + ->setKey('packagePHIDs') + ->setAliases(array('packagePHID', 'package', 'packages')) + ->setDatasource(new PhabricatorPackagesPackageDatasource()) + ->setDescription(pht('Search for versions by package.')), + ); } - protected function getURI($path) { return '/packages/version/'.$path; } diff --git a/src/applications/packages/storage/PhabricatorPackagesNgrams.php b/src/applications/packages/storage/PhabricatorPackagesNgrams.php new file mode 100644 index 0000000000..be21a63d8c --- /dev/null +++ b/src/applications/packages/storage/PhabricatorPackagesNgrams.php @@ -0,0 +1,10 @@ + true, self::CONFIG_COLUMN_SCHEMA => array( - 'name' => 'text64', + 'name' => 'sort64', 'packageKey' => 'sort64', ), self::CONFIG_KEY_SCHEMA => array( @@ -207,6 +208,17 @@ final class PhabricatorPackagesPackage } +/* -( PhabricatorNgramsInterface )----------------------------------------- */ + + + public function newNgrams() { + return array( + id(new PhabricatorPackagesPackageNameNgrams()) + ->setValue($this->getName()), + ); + } + + /* -( PhabricatorConduitResultInterface )---------------------------------- */ diff --git a/src/applications/packages/storage/PhabricatorPackagesPackageNameNgrams.php b/src/applications/packages/storage/PhabricatorPackagesPackageNameNgrams.php new file mode 100644 index 0000000000..cfba763075 --- /dev/null +++ b/src/applications/packages/storage/PhabricatorPackagesPackageNameNgrams.php @@ -0,0 +1,14 @@ + true, self::CONFIG_COLUMN_SCHEMA => array( - 'name' => 'text64', + 'name' => 'sort64', 'publisherKey' => 'sort64', ), self::CONFIG_KEY_SCHEMA => array( @@ -183,6 +184,17 @@ final class PhabricatorPackagesPublisher } +/* -( PhabricatorNgramsInterface )----------------------------------------- */ + + + public function newNgrams() { + return array( + id(new PhabricatorPackagesPublisherNameNgrams()) + ->setValue($this->getName()), + ); + } + + /* -( PhabricatorConduitResultInterface )---------------------------------- */ diff --git a/src/applications/packages/storage/PhabricatorPackagesPublisherNameNgrams.php b/src/applications/packages/storage/PhabricatorPackagesPublisherNameNgrams.php new file mode 100644 index 0000000000..290404ebe6 --- /dev/null +++ b/src/applications/packages/storage/PhabricatorPackagesPublisherNameNgrams.php @@ -0,0 +1,14 @@ +setValue($this->getName()), + ); + } + + /* -( PhabricatorConduitResultInterface )---------------------------------- */ diff --git a/src/applications/packages/storage/PhabricatorPackagesVersionNameNgrams.php b/src/applications/packages/storage/PhabricatorPackagesVersionNameNgrams.php new file mode 100644 index 0000000000..cad5c9ad94 --- /dev/null +++ b/src/applications/packages/storage/PhabricatorPackagesVersionNameNgrams.php @@ -0,0 +1,14 @@ +