Good time of day (again!), I know Paul is going to be talking about the Koha:: namespace tomorrow, but since I can't be in KohaCon in person I wanted to share a few of my thoughts and maybe help him out with getting the conversation started. As part of the authority control improvements I'll be working on, I'm going to be doing a fair amount of code cleanup, which in many cases will involve moving the non-offending parts of the code to the Koha:: namespace (I don't know if this is an American expression, but there's a saying that you can't make a silk purse out of a sow's ear, which pretty much sums up how parts of C4:: are). On the plane on the way back from Lawrence I jotted down a few notes on how parts of the Koha:: namespace might look, and wanted to share them. I'm not sure if the ASCII graphics will come through in the e-mail, but this is also at the end of the authority control improvements RFC at http://wiki.koha-community.org/wiki/C_%26_P_Authority_Control_Improvements_RFC
Any suggestions how to improve things (or, even better, consensus!) would be most welcome. + Koha::Cache - object-oriented class for caching data in Koha | +--- Koha::Cache::Fastmmap - mmap driver class for Koha caching | (implemented in bug 8092) | +--- Koha::Cache::Memcached - memcached driver class for Koha caching | (implemented by bug 7248) | +--- Koha::Cache::Memory - in-process driver class for Koha caching | (implemented in bug 8092) | +--- Koha::Cache::Memory - in-process driver class for Koha caching (implemented in bug 8092) + Koha::Calendar - object-oriented class for handling branch opening calendars & Koha::Context - exporter class for basic configuration information (note: a better option might be Koha::Koha as an object-oriented alternative to Koha::Context; C & P will implement the start of the latter, if that is the consensus of the community) & Koha::DateUtils - exporter shim class to ease migration to DateTime from date-only strings # Koha::Filter - virtual parent class for all record processor filters | +--* Koha::Filter::[metadata schema]::* - | object-oriented classes extending Koha::RecordProcessor::Base | which implement particular record processing functionalities \ +--- Koha::Filter::MARC::EmbedItems - filter for embedding items in | bib records for the indexing process | +--- Koha::Filter::MARC::EmbedSeeFromHeadings - filter for embedding see from headings in bib records for the indexing process + Koha::Heading - object-oriented class representing | authority-controlled headings | +--- Koha::Heading::MARC21 - object-oriented MARC21 heading handler for | Koha::Heading | +--- Koha::Heading::UNIMARC - object-oriented UNIMARC heading handler for Koha::Heading + Koha::Indexer::Utils - indexer utility functions (implemented by bug 7818) # Koha::Linker - virtual parent class for heading-authority linker | modules | +--* Koha::Linker::* - object-oriented linker modules for linking | headings to authorities \ +--- Koha::Linker::Default - default linker module | +--- Koha::Linker::FirstMatch - linker module that always selects | the first match it finds | +--- Koha::Linker::LastMatch - linker module that always selects the last match it finds # Koha::Record - virtual parent class for all types of records handled | by Koha | +--- Koha::Record::Biblio - object-oriented class representing | bibliographic records | +--+ Koha::Record::Authority - object-oriented class representing | | authority records | | | &--- Koha::Record::Authority::Handler::MARC21 - exporter class | | with MARC21-specific routines for Koha::Record::Authority | | (should be used only by Koha::Record::Authority) | | | &--- Koha::Record::Authority::Handler::UNIMARC - exporter class | with UNIMARC-specific routines for Koha::Record::Authority | (should be used only by Koha::Record::Authority) | +--* Koha::Record::Holdings - hypothetical object-oriented class | representing holdings records | +--- Koha::Record::Item - object-oriented class representing item records + Koha::RecordProcessor - object-oriented class for processing records using various filters & Koha::Search - exporter class offering access to searching | functionality via Koha::Search::Engine | +--+ Koha::Search::Engine - object-oriented class which dispatches | | calls into the specific search engine module | | | +--- Koha::Search::Engine::Solr - class which interfaces with solr | | for searching | | | +--- Koha::Search::Engine::Zebra - class which interfaces with Zebra | for searching | +--# Koha::Search::Plugin - virtual parent class for search plugins | | | +--- Koha::Search::Plugin::* - plugins implementing particular search | functionality | +--+ Koha::Search::Query - object-oriented class which generates queries | +--- Koha::Search::Query::Solr - class to generate Solr queries | +--- Koha::Search::Query::Zebra - class to generate Zebra queries + Koha::Template::Plugin::* - plugins for Template Toolkit & Koha::Utils - exporter class for utility functions required by many | parts of Koha (no dependencies other than Koha::Context) | &--- Koha::Utils::Authorities - exporter class for utility functions | related to authorities that do not act on an individual authority | &--- Koha::Utils::Biblios - exporter class for utility functions related to bibliographic records that do not act on an individual biblio Legend: + indicates an object-oriented class (or classes, in some cases) +--- indicates an object-oriented class that is further down in the hierarchy (may or may not be a subclass) +--+ indicates an object-oriented subclass that is extended # indicates a virtual object-oriented parent class +--# indicates a virtual object-oriented parent class which is further down in the hierarchy & indicates an exporter class &--- indicates an exporter subclass * indicates a hypothetical or example class \ indicates that the class(es) below this symbol provide (a) specific example(s) of the hypothetical or example class above the symbol NOTE: I do not propose to implement all of this as part of the authority project. C & P's authority development will create the following classes in the Koha:: namespace: + Koha::Filter + Koha::Filter::MARC::EmbedSeeFromHeadings + Koha::Heading::* + Koha::Record::Authority::* + Koha::RecordProcessor + Koha::Utils::Authorities (possibly) Regards, Jared -- Jared Camins-Esakov Bibliographer, C & P Bibliography Services, LLC (phone) +1 (917) 727-3445 (e-mail) jcam...@cpbibliography.com (web) http://www.cpbibliography.com/
_______________________________________________ Koha-devel mailing list Koha-devel@lists.koha-community.org http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/