[Koha-devel] Koha:: namespace
Kyle Hall
kyle.m.hall at gmail.com
Sun Jun 10 21:41:26 CEST 2012
I've written up our brainstorming session and put it on the wiki here:
http://wiki.koha-community.org/wiki/Koha_Namespace_RFC
It is a bit difficult to put these ideas down in plain text, so I
apologize if it is not very clear.
Kyle
http://www.kylehall.info
ByWater Solutions ( http://bywatersolutions.com )
Meadville Public Library ( http://www.meadvillelibrary.org )
Crawford County Federated Library System ( http://www.ccfls.org )
Mill Run Technology Solutions ( http://millruntech.com )
On Sat, Jun 9, 2012 at 12:58 PM, Jared Camins-Esakov
<jcamins at cpbibliography.com> wrote:
> 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) jcamins at cpbibliography.com
> (web) http://www.cpbibliography.com/
>
>
> _______________________________________________
> Koha-devel mailing list
> Koha-devel at 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/
More information about the Koha-devel
mailing list