mustafa
MustafaVC
Mustafa is MVC Framework for Crystal
Getting Started :sunglasses:
Download Visual Studio Code and add Crystal extension for faster coding with snippets.
Add your shard.yml
and install lib. Yes it's ready! Build your MVC project.
For more information, you can see Mustafa Wiki
Installation :star:
Add this to your application's shards.yml
dependencies:
mustafa:
github: guvencenanguvenal/mustafa
branch: master
Route :rocket:
http://localhost/welcome
call controller which name is Welcome
http://localhost/welcome/hello
call controller which name is Welcome and run action(method) which name is "hello"
http://localhost/welcome/hello/param1/param2
call controller which name is Welcome and run action(method) which name is "hello" and..
Library.input.params 0 => "param1"
Library.input.params 1 => "param2"
Note: params is not get or post
Configuration :mag_right:
Configuration file is config.cr on src/mustafa/config/config.cr
DEFAULT_CONTROLLER = "your default controller" #this controller is default which response http://localhost/
MODULE_NAME = "your module name"
VIEW_PATH = "src/your module name/view" # ./src/mustafa/view/ecr_file.ecr
and choose your localhost
LOCALHOST_ADDRESS = "0.0.0.0"
Super Simple :checkered_flag:
Model
Model name must be capitalized case (first letter is upper, other letters is lower)
Welcomemodel.cr
class Welcomemodel < Core::Model
def hello
puts "hello"
end
end
Controller
Controller name must be capitalized case (first letter is upper, other letters is lower)
Welcomecontroller.cr
class Welcomecontroller < Core::Controller
init Welcomecontroller
action "index" do
Core.loader.entity_model("tablename", Welcomemodel) do |model|
model.hello #puts hello on terminal
ret_val = model.select_all("id = 3") #select * from tablename where id = 3
puts ret_val[0]["id"] # 1. row and id column
end
Core.loader.view(self, Welcomeview) do |view|
view.add_param("key", "value")
end
end
end
View
View has a class and an ECR File
Welcomeview.cr
class Welcomeview < Core::View
init "Welcome.ecr"
def load
if (view_params["key"] == "value")
puts "hello" #put hello on terminal
end
end
end
Welcome.ecr
Selam, <%= @view_params["key"] %>! # value
Run, go go go
Yourproject.cr
require "mustafa"
#And require your controller, view and model files
module Yourproject
Mustafa.run
end
#Contribute
Please fork project MustafaVC
#Thanks
Thanks porras/session for session and encoder class.
Thanks logomakr.com for logo.