phoenix-framework ट्यूटोरियल
फोनिक्स-फ्रेमवर्क के साथ शुरुआत करना
खोज…
टिप्पणियों
यह खंड फ़ीनिक्स-रूपरेखा क्या है का एक सिंहावलोकन प्रदान करता है, और क्यों एक डेवलपर इसका उपयोग करना चाह सकता है।
यह फोनिक्स-ढांचे के भीतर किसी भी बड़े विषयों का उल्लेख करना चाहिए, और संबंधित विषयों के लिए लिंक करना चाहिए। चूंकि फोनिक्स-फ्रेमवर्क के लिए दस्तावेज़ीकरण नया है, इसलिए आपको उन संबंधित विषयों के प्रारंभिक संस्करण बनाने की आवश्यकता हो सकती है।
संस्करण
संस्करण | रिलीज़ की तारीख |
---|---|
0.1.1 | 2014-05-01 |
0.2.0 | 2014-05-01 |
0.2.1 | 2014-05-01 |
0.2.2 | 2014-06-05 |
0.2.3 | 2014-05-05 |
0.2.10 | 2014-05-22 |
0.2.11 | 2014-06-30 |
0.3.0 | 2014-07-01 |
0.3.1 | 2014-07-05 |
0.4.0 | 2014-08-31 |
0.4.1 | 2014-09-09 |
0.5.0 | 2014-10-14 |
0.6.0 | 2014-11-22 |
0.6.1 | 2014-11-30 |
0.6.2 | 2014-12-08 |
0.7.0 | 2014-12-10 |
0.7.1 | 2014-12-10 |
0.7.2 | 2014-12-11 |
0.8.0 | 2015-01-11 |
0.9.0 | 2015-02-12 |
0.10.0 | 2015-03-08 |
0.11.0 | 2015/04/08 |
0.12.0 | 2015/05/01 |
0.13.0 | 2015/11/15 |
0.13.1 | 2015/05/17 |
0.14.0 | 2015/06/30 |
0.15.0 | 2015/07/27 |
0.16.0 | 2015/08/06 |
0.16.1 | 2015/08/06 |
0.17.1 | 2015/08/27 |
1.0.0 | 2015/08/28 |
1.0.1 | 2015/09/03 |
1.0.2 | 2015/09/07 |
1.0.3 | 2015/09/29 |
1.0.4 | 2015/12/15 |
1.1.0 | 2015/09/16 |
1.1.1 | 2015/09/27 |
1.1.2 | 2016/01/09 |
1.1.3 | 2016/01/20 |
v1.2.0-rc.0 | 2016/04/29 |
v1.2.0-rc.1 | 2016/05/25 |
1.2.0 | 2016/06/23 |
1.2.2 | 2017/03/14 |
1.2.3 | 2017/03/15 |
1.2.4 | 2017/05/16 |
1.3.0-rc.1 | 2017/03/15 |
1.3.0-rc.2 | 2017/05/16 |
स्थापना
फीनिक्स फ्रेमवर्क एलिक्सिर में लिखा गया है, और एलिक्सिर स्वयं एरलंग भाषा पर आधारित है और एरलांग वीएम का लाभ उठाता है, जो कम-विलंबता, वितरित और दोष-सहिष्णु प्रणालियों को चलाने के लिए जाना जाता है। फोनिक्स फ्रेमवर्क का उपयोग करने के लिए दोनों भाषाओं की आवश्यकता होती है। फीनिक्स ढांचे को स्थापित करने के लिए निम्नलिखित कदम के बाद:
1. अपनी मशीन पर अमृत स्थापित करें । अमृत स्थापना देखें और अमृत गाइड कैसे स्थापित करें ।
2. हेक्स पैकेज मैनेजर स्थापित करें । फीनिक्स ऐप चलाने के लिए और रास्ते में हमें जो भी अतिरिक्त निर्भरताएं चाहिए, उन्हें स्थापित करने के लिए हेक्स एक आवश्यक उपकरण है। अपने टर्मिनल या कमांड कंट्रोल विंडो से, टाइप करें:
$ mix local.hex
यदि आपके पास पहले से ही यह कमांड हेक्स स्थापित या अपडेट करेगा।
3. अपनी मशीन पर Erlang इंस्टॉल करें । Erlang के बिना, Elixir कोड संकलित नहीं होगा क्योंकि Elixir कोड संकलन के लिए Erlang के VM का उपयोग करता है। जब आप Elixir को इंस्टॉल करेंगे, तो आपने शायद Erlang को भी इंस्टॉल किया होगा, लेकिन अगर ऐसा नहीं है, तो Erlang को इंस्टॉल करने के लिए Elixir गाइड के इन निर्देशों का पालन करें। हालाँकि, यदि आपके पास डेबियन-आधारित प्रणाली है, तो आपको स्पष्ट रूप से एरलैंग को स्थापित करने की आवश्यकता हो सकती है।
$ wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
$ sudo apt-get update
$ sudo apt-get install esl-erlang
4. अपनी मशीन पर फोनिक्स फ्रेमवर्क स्थापित करें । एक बार हमारे पास अमृत और एर्लैंग होने के बाद, हम फीनिक्स मिक्स आर्काइव स्थापित करने के लिए तैयार हैं। मिक्स आर्काइव एक जिप फाइल है जिसमें एक एप्लीकेशन के साथ-साथ इसकी संकलित BEAM फाइलें भी हैं। यह एप्लिकेशन के एक विशिष्ट संस्करण से जुड़ा हुआ है। संग्रह वह है जो हम एक नया, बेस फीनिक्स एप्लिकेशन बनाने के लिए उपयोग करेंगे, जिसे हम बना सकते हैं। यहाँ फीनिक्स संग्रह स्थापित करने की कमान है:
$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
यदि आप उपरोक्त कमांड आपके लिए ठीक से काम नहीं करते हैं, तो आप मैन्युअल रूप से पैकेज डाउनलोड कर सकते हैं। अपनी फाइल सिस्टम फीनिक्स अभिलेखागार में पैकेज डाउनलोड करें और निम्नलिखित कमांड चलाएं
mix archive.install /path/to/local/phoenix_new.ez
5 प्लग, काउबॉय, और एक्टो फीनिक्स ढांचे के घटक हैं, वे मिश्रण द्वारा स्वचालित रूप से स्थापित किए जाएंगे, यदि आप मिश्रण को अपनी निर्भरता स्थापित करने देते हैं, जब आप पहली बार फीनिक्स प्रोजेक्ट बनाएंगे। इसके अलावा, यदि आप इन घटकों को डाउनलोड करने की अनुमति नहीं देते हैं, तो मिश्रण आपको बताएगा कि बाद में ऐसा कैसे करें।
6. अपनी मशीन पर Node.js (कम नहीं तो v5.0.0) स्थापित करें । यह एक वैकल्पिक निर्भरता है। Node.js को brunch.io निर्भरताएँ स्थापित करने के लिए आवश्यक है। Brunch.io का उपयोग फ़ीनिक्स द्वारा डिफ़ॉल्ट रूप से स्थिर संपत्ति (जावास्क्रिप्ट, सीएसएस, आदि) के संकलन के लिए किया जाता है।
हम डाउनलोड पृष्ठ से नोड.जेएस प्राप्त कर सकते हैं। डाउनलोड करने के लिए एक पैकेज का चयन करते समय, यह ध्यान रखना महत्वपूर्ण है कि फीनिक्स को संस्करण 5.0.0 या अधिक की आवश्यकता है।
Mac OS X उपयोगकर्ता homebrew के माध्यम से नोड.जेएस भी स्थापित कर सकते हैं।
नोट: io.js, जो मूल रूप से Node.js पर आधारित एक npm संगत प्लेटफॉर्म है, फीनिक्स के साथ काम करने के लिए नहीं जाना जाता है।
Debian / Ubuntu उपयोगकर्ताओं को इस तरह दिखने वाली एक त्रुटि दिखाई दे सकती है:
sh: 1: node: not found
npm WARN This failure might be due to the use of legacy binary "node"
यह डेबियन के लिए नोड के लिए परस्पर विरोधी बायनेरिज़ होने के कारण है: एसओ प्रश्न का पालन करने पर चर्चा देखें
उबंटू में नोड पैकेज मैनेजर का उपयोग करके पैकेज स्थापित नहीं कर सकते
इस समस्या को ठीक करने के लिए दो विकल्प हैं:
नोडज-विरासत स्थापित करें:
$ apt-get install nodejs-legacy
या एक सिमलिंक बनाएँ
$ ln -s /usr/bin/nodejs /usr/bin/node
7 अपने मशीन पर डेटाबेस ( PostgreSQL ) स्थापित करें । फ़ीनिक्स इसे डिफ़ॉल्ट रूप से उपयोग करने के लिए अनुप्रयोगों को कॉन्फ़िगर करता है, लेकिन हम एक नया अनुप्रयोग बनाते समय --database mysql
ध्वज को पास करके MySQL पर स्विच कर सकते हैं। PostgreSQL विकी में कई अलग-अलग प्रणालियों के लिए अधिष्ठापन गाइड हैं।
Postgrex एक प्रत्यक्ष फीनिक्स निर्भरता है और इसका उपयोग मॉडल बनाने के लिए किया जाएगा। जब आप फीनिक्स प्रोजेक्ट बनाएंगे और शुरू करेंगे, तो पोस्टग्रेक्स बाकी निर्भरताओं के साथ स्वचालित रूप से इंस्टॉल हो जाएगा।
8 inotify-tools (लिनक्स यूजर्स के लिए) यह एक लिनक्स-ओनली फाइलसिस्टम द्रष्टा है जिसे फीनिक्स लाइव कोड रीलोडिंग के लिए उपयोग करता है। (मैक ओएस एक्स या विंडोज उपयोगकर्ता सुरक्षित रूप से इसे अनदेखा कर सकते हैं।)
लिनक्स उपयोगकर्ताओं को इस निर्भरता को स्थापित करने की आवश्यकता है। वितरण-विशिष्ट स्थापना निर्देशों के लिए कृपया inotify-tools विकी से परामर्श करें।
कंकाल स्थापना
कभी-कभी आप नंगे न्यूनतम फ़ीनिक्स सेटअप को छोड़कर किसी भी चीज़ के बिना एक इंस्टॉलेशन चाहते हैं। फॉलो कमांड आपको वह देगा।
mix phoenix.new web --no-brunch --no-ecto
नोट: आपने एलिक्ज़िर, एरलैंग, हेक्स, मिक्स और कंकाल स्थापना के लिए फीनिक्स संग्रह स्थापित किया होगा
फीनिक्स प्रोजेक्ट बनाना
इस बिंदु पर फीनिक्स फ्रेमवर्क में अपना पहला प्रोजेक्ट बनाने के लिए आपके पास एलिक्सिर, एरलैंग, हेक्स और फीनिक्स संग्रह स्थापित होना चाहिए । डिफ़ॉल्ट एप्लिकेशन बनाने के लिए आपके पास PostgreSQL और node.js भी होना चाहिए।
टर्मिनल खोलें या कमांड प्रॉम्प्ट करें और अपने फाइल सिस्टम पर उस स्थान पर जाएं जहां आप एप्लिकेशन बनाना चाहते हैं । phoenix.new
मिक्स कमांड है जो आपके लिए नई परियोजना का निर्माण करेगा। यह मानते हुए कि हमारे एप्लिकेशन का नाम hello_phoenix_world
, फिर टाइप करें
$ mix phoenix.new hello_phoenix_world
वैकल्पिक रूप से , हम अपने फीनिक्स एप्लिकेशन को बूटस्ट्रैप करने के लिए किसी भी डायरेक्टरी से मिक्स फीनिक्स चला सकते हैं। फीनिक्स हमारी नई परियोजना की निर्देशिका के लिए या तो एक पूर्ण या सापेक्ष मार्ग स्वीकार करेगा
$ mix phoenix.new /Users/username/work/elixir-projects/hello_phoenix_world
उत्पादन
mix phoenix.new hello_phoenix_world
* creating hello_phoenix_world/config/config.exs
* creating hello_phoenix_world/config/dev.exs
* creating hello_phoenix_world/config/prod.exs
...
* creating hello_phoenix_world/web/views/layout_view.ex
* creating hello_phoenix_world/web/views/page_view.ex
Fetch and install dependencies? [Yn]
फीनिक्स आपकी परियोजना के लिए निर्देशिका संरचना उत्पन्न करेगा और यह आवेदन के लिए आवश्यक सभी फाइलें बनाएगा। मिक्स आपसे पूछेगा कि क्या आप इसे अन्य आवश्यक निर्भरता स्थापित करना चाहते हैं। मान लीजिए कि हाँ।
Fetch and install dependencies? [Yn] Y
* running mix deps.get
* running npm install && node node_modules/brunch/bin/brunch build
एक बार निर्भरताएं स्थापित हो जाने के बाद , कार्य आपको हमारी परियोजना निर्देशिका में बदलने और आवेदन शुरू करने के लिए प्रेरित करेगा।
Move into your new project folder:
$cd hello_phoenix_world
अब आपको पोस्टग्रेज यूजरनेम और पासवर्ड को तब तक सेट करने की जरूरत है जब तक कि डिफ़ॉल्ट के साथ इसका पहले से ही सेट यूजरनेम और पासवर्ड को पोस्टग्रेट न कर दे। अपनी config/dev.exs
फ़ाइल संपादित करें और उपयोगकर्ता नाम और पासवर्ड सेट करें:
# config/dev.exs
config :hello_phoenix_world, HelloPhoenixWorld.Repo,
adapter: Ecto.Adapters.Postgres,
username: "postgres",
password: "postgres",
database: "hello_phoenix_world_dev",
hostname: "localhost",
pool_size: 10
Now, create the database with the ecto mix task:
$ mix ecto.create
We have a working application! Run your Phoenix application:
$ mix phoenix.server
You can also run your app inside IEx (Interactive Elixir) as:
$ iex -S mix phoenix.server
Load `http://localhost:4000` into your browser and you will see the default landing page of your application.
अब, फीनिक्स एप्लिकेशन में हैलो वर्ल्ड को जोड़ने की सुविधा देता है। web/templates/page/index.html.eex
फ़ाइल खोलें और निम्नलिखित के साथ सामग्री को बदलें और फ़ाइल को सहेजें:
<h2>Hello World</h2>
यदि आपने सर्वर नहीं छोड़ा है, तो नया कोड स्वचालित रूप से संकलित किया जाएगा और आपके ब्राउज़र को अब आपका "हैलो वर्ल्ड" संदेश प्रदर्शित करना चाहिए।
अब आप CRUD संसाधन बना सकते हैं।
अंत में, सर्वर से बाहर निकलने के लिए, एक पंक्ति में दो बार ctrl-c
crtl-c
( control key
और c
कुंजी को एक साथ दबाएं) टाइप करें।
OSX पर अमृत / फीनिक्स चलाना
अमृत / फीनिक्स
पहले Homebrew स्थापित करें:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
फिर चल brew install elixir
दोनों अमृत स्थापित करेगा और यह निर्भरता है - एर्लांग।
mix local.hex
साथ mix local.hex
।
निर्देश के अनुसार फीनिक्स स्थापित करें:
mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
Node.js
आप NVM के साथ अपने Node.js संस्करणों को स्थापित और प्रबंधित कर सकते हैं। के साथ nvm स्थापित करें:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash
यदि curl
उपलब्ध नहीं है, तो आप इसे brew install curl
साथ स्थापित कर सकते हैं। फिर भागो:
nvm install node
डाउनलोड और संकलन और Node.js. का नवीनतम संस्करण
डेटाबेस
Postgres.app डाउनलोड करें और इसे चलाएं। जब आप अपना फीनिक्स प्रोजेक्ट बनाते हैं, अपने config/dev.exs
फ़ाइल में, आपको बस अपने डेटाबेस के लिए एक नाम की आपूर्ति करने की आवश्यकता होती है - एडेप्टर बाकी के लिए डिफ़ॉल्ट मानों का उपयोग करेगा:
config :myphoenixapp, MyPhoenixApp.Repo,
adapter: Ecto.Adapters.Postgres,
database: "myphoenixapp_dev",
hostname: "localhost",
pool_size: 10
एक मॉडल के लिए संसाधन उत्पन्न करना
स्कीमा, व्यू, कंट्रोलर, रिपॉजिटरी के लिए माइग्रेशन फाइल, डिफॉल्ट CRUD टेम्प्लेट और मॉडल के लिए टेस्टिंग फाइल (रेल में मचान की तरह) उत्पन्न करने के लिए कोई भी इस तरह से phoenix.gen.html
मिक्स टास्क का उपयोग कर सकता है:
mix phoenix.gen.html Book books title note:text pages:integer author_id:references:authors
कहाँ Book
मॉड्यूल का नाम है, books
: स्कीमा के लिए इस्तेमाल किया बहुवचन रूप, संसाधन क्षेत्रों द्वारा पीछा किया है title
(डिफ़ॉल्ट रूप से स्ट्रिंग), note
(पाठ क्षेत्र), pages
(पूर्णांक), author_id
जो एक बनाता है belongs_to
लेखक मॉडल के साथ मिलकर।