[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] Spiffy - ssp-handler - how to extend ssp-eval-environmen

From: Arthur Maciel
Subject: [Chicken-users] Spiffy - ssp-handler - how to extend ssp-eval-environment
Date: Mon, 26 Mar 2012 19:08:38 -0300

Dear Peter, thanks for the info!

What I would like when doing web programming (and specially when using Awful, which should be called Wonderful) is to have a clear separation between data processing and its presentation (model/controller vs view separation) and ssp-handler seemed to do this for me.

I believe a good way to do this would be to have page definitions with Awful 'define-page' procedure, that at the end would call a procedure that would hold all the view part (html-tags code for example) with an alist with parameters. Something like:

;; --- controllers/example.scm
(define-page "example/showvars"
    (*data processing here*)
    (let ((args `((var1 ,data1)
           (var2 ,data2))))
      (load "my-view")
      (show args))))

;; --- views/my-view.scm
(define (show #!optional args)
  (++ (<b> (++ "Var 1: " (assoc 'var1 args)))
      (<b> (++ "Var 2: " (assoc 'var2 args)))))

I am writing macros to transform the above into:

;; --- controllers/example.scm
(controller example
        (define (showvars)
           (*data processing here*)
           (let ((args `((var1 ,data1)
                               (var2 ,data2))))
        (load-view "my-view" args))))
;; --- views/my-view.scm
 (++ (<b> (++ "Var 1: " (? 'var1)))
     (<b> (++ "Var 2: " (? 'var2)))))

Am I doing it Wrong(TM)? Is the above example to PHPcentric or imperative? I really thought about separating data processing from view in order to make it easy to maintain the code, specially by different programmers with different development focus (ie. web design vs engine programming). Probably I'll face this separation in the near future.

I always like your opinions! Thanks!

---------- Mensagem encaminhada ----------
From: Peter Bex <address@hidden>
To: chicken-users <address@hidden>
Date: Mon, 26 Mar 2012 09:18:39 +0200
Subject: Re: [Chicken-users] Spiffy - ssp-handler - how to extend ssp-eval-environment
On Mon, Mar 26, 2012 at 12:02:13AM -0300, Arthur Maciel wrote:
> Hello!


> I would like to know how it is possible to extend 'ssp-eval-environment' to
> add variables that could be accessed when processing .ssp files with
> 'ssp-stringize' or 'ssp-include'.

It's a regular old environment object that gets passed to eval.
It used to be that you could extend these environments, but I'm unsure
about the current state of first-class environments.  It used to be that
you could use the "environments" egg to extend these, but they've had
a major overhaul and I think that egg no longer functions.

Please note that ssp is deprecated and ugly as hell.  If you want
to program PHP, use the real thing and get the full "experience" ;)

"The process of preparing programs for a digital computer
 is especially attractive, not only because it can be economically
 and scientifically rewarding, but also because it can be an aesthetic
 experience much like composing poetry or music."
                                                       -- Donald Knuth

reply via email to

[Prev in Thread] Current Thread [Next in Thread]