Tutorial
Robert Schwarz
r.schwarz at blackstream.at
Mon Nov 19 21:15:09 UTC 2007
Error: Magma helper not selected in application configuration.
When I add the WAMagmaConfiguration I see the Magma configuration
group but I didn't found any drop down menu where I can select WAMagma.
How can I configure my application for the Magma helper?
Robert
Am 28.10.2007 um 06:57 schrieb Keith Hodges:
> There have been calls for a Magma tutorial to go into the Seaside
> tutorial in the persistency chapter. This chapter already includes
> Glorp and GOODS.
>
> Just in case someone is already, or thinking of doing this, I have
> already written such a mini tutorial.
>
> In order to make Magma even easier to use, I have begun rewriting
> "Magma seaside" to take advantage of my new Seaside Session Helpers
> interface, which I released yesterday.
>
> The idea being that you can now use Magma, without a specialized
> Seaside Session class. This should make it easier for users to adopt
> Magma for their existing applications.
>
> I am a little unsure as to how you are supposed to obtain an exact
> match of a unique item from the database.
> This is how I would do it (althought I know MagmaCollections dont
> actually implement #firstOrNil)
>
> ^ (self users where: [ :each | each email = anEmail ]) firstOrNil
>
> Is there a better way to obtain a unique value?
>
> cheers
>
> Keith
>
> p.s. the wiki page that I refer to on MagmaCollections is a bit out
> of date.
> ----
>
> so far...
>
> Saving all data in an object-oriented database: Magma
>
> Another option to make your data persistent is to use an object-
> oriented database like Magma.
>
> Installing the Magma Database
>
> Magma is written entirely in Squeak, so there is no need to install
> a separate server application. Both Magma and Seaside can run in the
> same image. To install (into a 3.10 based image) just execute the
> following. (This may take a while)
>
> Installer universes install: 'Magma seasideHelper'.
>
> Configuring your application to use Magma
>
> In the configuration for the 'todo' application you will need to add
> WAMagmaConfiguration to the configuration "ancestry". Select it from
> the drop down menu and click "Add". As soon as you do this, a new
> group of configuration options will appear. You will need to select
> the "WAMagma", helper class from the drop down menu.
>
> The WAMagma class provides the basic interface between Magma
> Sessions and Seaside Sessions. Subclasses provide specialised
> session management such as shared or pooled sessions.
>
> Using Magma
>
> Magma is very easy to use with seaside. To obtain and use a database
> session helper, simply send #magma to the current session. For
> example the code "self session magma" will work within all seaside
> components.
>
> To use Magma in this application in a similar manner to the way we
> have connected to databases in other examples we need to create an
> interfacing class, to which we can add our specialized querying
> methods.
>
> Dictionary subclass: #StMagmaDatabase
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: 'STTutTodoApp'
>
> StSession-#initialize
> super initialize.
> self db: (self magma rootAs: StMagmaDatabase)
>
> The tutorial application accesses the database via the #db accessor.
> Here we define this using the #rootAs: helper method, which does
> everything we need, both to initialize the database, and to provide
> us the interface that we want to it.
>
> To initialize our users collection we define the initialization on
> our root object, and we need a method to return the users from the
> database, to add a new user, and to find a user.
>
> StMagmaDatabase-#initialize
> | users |
> users := OrderedCollection new.
> self at: #users put: users.
>
> StMagmaDatabase-#users
> ^ self at: #users
>
> StMagmaDatabase-#addUser: newUser
> ^ self users add: newUser
>
> StMagmaDatabase-#findUserByEmail: anEmail
> ^ self users
> detect: [:each | each email = anEmail]
> ifNone:[]
>
> Notice how for basic usage we have not needed any database specific
> code! If our userbase is going to grow to a significant size it
> makes sense to re implement the above using some database features,
> so we introduce a MagmaCollection which you can read about in detail
> here: http://wiki.squeak.org/squeak/2639
>
> initialize
> | users |
> users := MagmaCollection new.
> users addIndex: (MaSearchStringIndex attribute: #userName)
> beAscii.
> users addIndex: (MaSearchStringIndex attribute: #email) beAscii.
> self at: #users put: users
>
> StMagmaDatabase-#users
> ^ self at: #users
>
> StMagmaDatabase-#addUser: newUser
> ^ self users add: newUser
>
> StMagmaDatabase-#findUserByEmail: anEmail
> ^ (self users where: [ :each | each email = anEmail ]) firstOrNil
>
> ... need to explain how committing works... etc
>
>
>
>
>
> _______________________________________________
> Magma mailing list
> Magma at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/magma
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/magma/attachments/20071119/b5080a34/attachment.htm
More information about the Magma
mailing list