[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