[Koha-devel] Koha:: namespace
Jared Camins-Esakov
jcamins at cpbibliography.com
Sat Jun 9 13:58:40 CEST 2012
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/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/koha-devel/attachments/20120609/50d7bd41/attachment-0001.htm>
More information about the Koha-devel
mailing list