silverstreak
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:a super small collection of php files and rake tasks, some might even call it a mini framework
Silverstreak
============

This is a small php framework... actually more like a collection of files if you will. This
set of files that might be useful if you are under the following situations:

1. Designing a brochure (5-6 page) website and maybe it has a form
2. Don't need a database
3. Using a LAMP Stack
4. Want an easier way to work with the post/get requests and/or forms for that matter

Features
--------

1. an .htaccess for nice SEO friendly urls, so you can call pages with 'index' instead
of index.php, this only works on the the main root directory and not any subdirectories
2. stop writing echo all the time, certain methods such as link_to automatically echoes the output, so:

INSTEAD OF:
     
       echo link_to("Home Page");
     
YOU CAN WRITE:
     
       link_to("Home Page")
     
3. nice abstraction methods for checking on request methods and form submitting
4. some form helpers and text helpers...
5. dry layouts and views, in the railsy format
6. rake generators for generating layouts and view stubs

Requirements
============

- Rake (get it at : http://rake.rubyforge.org/)
- Apache (Litespeed works okay though, except .htaccess doesn't work)

Installation
============

Just put the silverstreak folder inside a php site like so:

    - my_cool_website
      |- silverstreak

1. cd silverstreak
2. rake silverstreak:install
3. it should generate a public folder with all the files that you need in the root of 
   your web/project folder, so make sure you point your vhost to my_cool_website/public
4. it will generate a default index.php file for you, on any pages that you setup, make
   sure that the following line is at the top of the page, so that you can use all the
   features for silverstreak, the index file is basically a stub for the index view   
   (more information about layouts and views below):
   
        
   
   
How it Works
============

Think MVC without the Model or even the Controller, this is more like just the View and 
Layout, when you submit a request, this is what happens:
  
1. GET http://yoursite.com/
2. Attempts to find the default document (which might be 'index' in this case)
3. Renders index.php (which is just a stub) 
4. Looks for any form helpers/helpers/layouts/views named 'index', it will render the 
   application layout if the 'index' layout cannot be found
   
Generators
==========

Silverstreak uses rake to generate stubs for helpers, views, form_helpers, and layouts. 
Simply call Rake generate:[command] to use. Here are the following generators:
   
   1. generate:view FOR='name of view'
   2. generate:layout FOR='name of layout'
   3. generate:helper FOR='name of helper'
   4. generate:form_helper FOR='name of form helper'
   
Helpers and methods
===================

Silverstreak uses form helpers and standard page helpers, they are located in:
  
  Location of page helper
    - public/helpers/[name of request]
    
  Location of form helper
    - public/form_helpers/[name of request]
    
Page helpers are files that contain page specific methods that you can use for a specific 
page. Form helpers are somewhat like controllers, but their main purpose is to process 
forms. When you write form helpers, forget using the $_POST varables to access form 
values, simply call a form value by its name:

INSTEAD OF: 

      $_POST['first_name']
DO: 

      $first_name
  
An example of a form helper might look like this:
  
    if (is_form_submitted()) {
      $subject = "Someone has just contact you!";

      $body = "The following person has signed up: \n";
      $body .= "--------\n\n";  
      $body .= "Here is the information that was submitted:\n\n";
      $body .= "Email : $email\n";

      mail($email_to, $subject, $body, 'From:you@yourwebsite.com');
    }

Deployment
==========

Using capistrano is overkill, it has been replaced with rsync, chmod 755 config/deploy.rb 
Open and configure the following variables:

* FROM : location/of/project
* SERVER : hostname or ip of server
* TO : destination/of/project/on/server

Then run ./config/deploy.rb to deploy site

Public Helper Methods
=====================

link_to 
-------

Somewhat similar to rails' link_to method, this will automatically generate an anchor with
to the page you want it to link to.

    link_to($content='',$href='',$title='');
  
USAGE

    link_to("Home");
      #=> Home # it works because of the .htaccess
    
    link_to("Home", "index.php");
      #=> Home
    
    link_to("Home", "index.php", "Go to Home Page")
      #=> Home
  
partial
-------

Includes a file, I know you can use include, but if you following the convention of naming
your partials (pages) with a leading underscore (_) then it will automatically know that 
it is a partial.

    partial($name);

USAGE

    partial('nav') #=> include('_nav.php');
  
display_partial_if
------------------

Displays a partial if a given condition is true... can be useful if you are displaying 
user specific data.

    display_partial_if($condition, $partial);
  
USAGE

    display_partial_if(is_form_submitted(),'success');
    # => will display the success partial after the form is submitted
  
dasherize
---------

Replaces spaces in a string with dashes

    dasherize($string);
  
USAGE

    dasherize("Black magic woman");
    # => "Black-magic-woman";
  
underscore
----------

Replaces spaces in a string with underscores
  
    underscore($string);
  
USAGE

    underscore("Black magic woman");
    # => "Black_magic_woman";
  
select_for_states
-----------------

Generates a select form element that will have a list of all the states in the US.

    select_for_states($name_of_select='state');
  
this_file
---------

Returns the name of the current file in question

    this_file();
  
this_page
---------

Basically echoes this_file(), use this when you need to echo the page name

    this_page();
  
request_method
--------------

Returns the request method, (GET or POST), basically an abstraction from 
$_SERVER['REQUEST_METHOD'];

    request_method();
  
is_form_submitted
-----------------

Checks whether the form has been submitted or not.

    is_form_submitted($submit_name="submit", $method="POST");
 
is_post_request
---------------

Returns true if the request method for the page is POST

    is_post_request();
 
is_get_request
--------------

Returns true if the request method for the page is GET
 
    is_get_request();
 
include_css
-----------

Includes css files from the css directory, you can pass an array to include multiple css files.

    // single css file
    include_css('default');
  
    // multiple css files
    include_css(array('default','app'))
  
include_js
----------

Includes js files from the javascripts directory, you can pass an array to include 
multiple js files.

    // single js file
    include_js('app');

    // multiple js files
    include_js(array('jquery','app'))
  
yield
-----

Yields the output for the view, mainly used in layouts to designate where the view file 
will output to:

    // assuming this paragraph is in your layout file somewhere
    

include_js_lib -------------- Hooks into the google ajax libraries, so you can use any library you want! get more info at [google](http://code.google.com/apis/ajaxlibs/) // include jquery 1.3.2 include_js_lib('jquery-1.3.2'); // include jquery 1.3.2 and jqueryui-1.7.2 include_js_lib('jquery-1.3.2','jqueryui-1.7.2'); tag($name,$content,$attrs) -------------------------- Creates an (opening and closing) html tag. //

My Header

tag('h1','My Header','title="Sweet" class="heading"); single_tag($name,$attrs) ------------------------ Creates a self closing tag. // single_tag('img', 'src="http://www.google.com/intl/en_ALL/images/logo.gif"'); output_tag($name,$content,$attrs) --------------------------------- Echos an (opening and closing) tag. //

My Header

output_tag('h1','My Header','title="Sweet" class="heading"); output_single_tag($name,$attrs) ------------------------------- Echos a self closing tag. // output_single_tag('img', 'src="http://www.google.com/intl/en_ALL/images/logo.gif"');

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。