পিএইচপি ওয়েব অ্যাপ্লিকেশন আর্কিটেকচার / ডিজাইন [বন্ধ]


20

আমাকে পিএইচপি-তে ওয়েব অ্যাপ্লিকেশন বিকাশকারী একটি নতুন কাজের প্রথম দিকে ফেলে দেওয়া হয়েছে। আমি কোনওভাবেই পিএইচপি-তে নতুন নই, তবে এর আগে আমি বড় আকারের অ্যাপ্লিকেশনগুলি বিকাশ করি না। আমি ভাবছি কীভাবে ভবিষ্যতে সমস্যার জন্য নিজেকে স্থাপন করতে এড়াতে আমার বিকাশের কাঠামো তৈরি করব। আমি কীভাবে আমার অ্যাপ্লিকেশনগুলিকে একটি সাউন্ড উপায়ে ডিজাইন এবং আর্কিটেক্ট করব যা সেগুলি কার্যকারিতা এবং পারফরম্যান্সের ক্ষেত্রে সময়ের সাথে সাথে স্কেল করতে দেয়। আমি এই জাতীয় জিনিস সম্পর্কে চিন্তা করছি:

  • সামনে প্রান্ত থেকে পিছন দিকে পৃথক করা
  • ডিরেক্টরি কাঠামো

আমি আর্কিটেকচারাল এবং অ্যাপ্লিকেশন ডিজাইনের নিদর্শন, ফ্রেমওয়ার্ক এবং পদ্ধতিগুলির দিকে নির্দেশকারীদের প্রশংসা করব যা আমাকে টেকসই উপায়ে বড় আকারের পিএইচপি ওয়েব অ্যাপ্লিকেশন বিকাশের কাছে যেতে দেয় allow


ওহে! ওয়েব অ্যাপ্লিকেশনগুলির জন্য সর্বাধিক সাধারণ আর্কিটেকচার হ'ল এমভিসি , পিএইচপি এবং প্রতিটি জনপ্রিয় ওয়েব প্ল্যাটফর্মের জন্য। এটি বলেছিল, আপনার আমাদের জিজ্ঞাসিত প্রশ্নাবলী পড়া উচিত । যদিও সফ্টওয়্যার আর্কিটেকচার বিষয়টিতে রয়েছে, আপনাকে আরও কিছুটা সুনির্দিষ্ট হওয়ার জন্য প্রশ্নটি সংশোধন করতে হবে। "সাধারণ আর্কিটেকচার নিয়ে চলছে এমন একটি স্বাস্থ্যকর আলোচনা" সাইটের প্রশ্নোত্তর বিন্যাসে ফিট করে না।
ইন্নিস

আমি এস / ই সাইটগুলিতে ঘন ঘন দর্শনার্থী, আমার মনে হয়েছিল এই প্রশ্নের উত্তর কেউই পাবে না, সুতরাং "আলোচনা" মন্তব্যটি। যদিও এমভিসি পয়েন্টারের জন্য ধন্যবাদ :)
ব্র্যাড মরিস

উত্তর:


29

আমি জড়িত সর্বশেষ বৃহত আকারের প্রকল্পের স্থাপত্যের মোটামুটি চিত্র g

এখানে চিত্র বর্ণনা লিখুন

এটি কেবলমাত্র একটি প্রাথমিক রূপরেখা, প্রকৃত আর্কিটেকচার ডকুমেন্টগুলি থেকে অভিযোজিত এবং এমন এক উপায়ে উপস্থাপন করা হয় যা সাধারণ এমভিসি পদ্ধতির সাথে মিলিয়ে একটি সাধারণ এন-টিয়ার পদ্ধতির অনুরূপ । আপনি দেখতে পাচ্ছেন যে যুক্তি এবং ডেটা স্তরগুলি কোনও পরিষেবা স্তরের মাধ্যমে সংযুক্ত রয়েছে এবং বিশেষত একটি REST এপিআই , যা রেসেস দ্বারা অনুপ্রাণিত হয়েছিল , এটি একটি কম পরিচিত পিএইচপি ফ্রেমওয়ার্ক।

চাকা পুনরুদ্ধার করবেন না

আমি তিনটি ফ্রেমওয়ার্ক নিয়ে কাজ করি:

  • জেন্ড ফ্রেমওয়ার্ক

    চিত্তাকর্ষকভাবে ভাল লিখিত কোডবেস এবং বৈশিষ্ট্যগুলির বিস্তৃত তালিকা সহ পিএইচপি ফ্রেমওয়ার্কের বিহমথ । বড় আকারের অ্যাপ্লিকেশনগুলিতে আপনি নিজের কাঠামোটি প্রায়শই বেশি বারের মতো টুইট করে দেখতে পাবেন এবং আমি জেডএফ এর কোডবেসকে কাজ করতে সবচেয়ে আনন্দদায়ক বলে মনে করি। তবে সাবধান, এটি কোনও এন্ট্রি স্তরের কাঠামো নয়

  • Kohana

    কোহানা কোডইগিনিটারের কাঁটাচামচ হিসাবে শুরু করেছিলেন এবং এটি প্রাথমিকভাবে আমার পক্ষে এটি ব্যবহার না করার যথেষ্ট কারণ ছিল। আজকাল এটি একটি শক্তিশালী এবং মার্জিত কাঠামোতে পরিণত হয়েছে যা হায়ারারিকাল এমভিসি পদ্ধতির অনুসরণ করে নিজেকে একে অপরের থেকে আলাদা করে তোলে । এইচএমভিসি এমভিসির চেয়ে আরও বেশি পরিমিতকরণের অনুমতি দেয় । চিত্রের প্রকল্পের জন্য আমি কোহানার এইচএমভিসি কে জেডএফের সাথে অভিযোজিত করেছি, তবে আমি ছোট প্রকল্পগুলির জন্য কোহানা ব্যবহার শুরু করেছি এবং এটি আরও বৃহত্তর হিসাবে বিবেচনা করছি।

  • CodeIgniter

    আমি কেবল উত্তরাধিকার সূত্রে প্রাপ্ত উত্তরাধিকার সূত্রের কারণে এটি ব্যবহার করি, সম্ভব হলে এড়ানো উচিত।

অন্যান্য উত্তরগুলি যেমন উল্লেখ করেছে, একটি ওআরএম সর্বদা কার্যকর হয়। আমি বিস্তৃতভাবে মতবাদ ব্যবহার করি এবং আপনার কাউচডিবি এবং মঙ্গোডিবি-র জন্য এটির ব্র্যান্ডের নতুন ম্যাপারগুলি একবার দেখে নেওয়া উচিত । স্কেলাবিলিটিটি বড় আকারের অ্যাপ্লিকেশনগুলির জন্য প্রয়োজনীয় এবং আপনার নোএসকিউএল সমাধানগুলি মূল্যায়ন করা উচিত ।

যা যা বলেছিল, এটি মনে রাখার জন্য গুরুত্বপূর্ণ বিষয়টি হ'ল বৃহত্তর অ্যাপ্লিকেশনগুলির সাধারণত অনন্য চ্যালেঞ্জ থাকে। আপনার প্রতিটি জনপ্রিয় তৃতীয় পক্ষের সমাধানের মূল্যায়ন করা উচিত এবং আপনি সম্ভবত দু'জন অস্পষ্ট লোকের কাছ থেকে অনেক কিছু অর্জন করতে পারেন। যখন আমি প্রথম রেসেসের মূল্যায়ন করেছি তখন এটি উত্পাদন প্রস্তুত থেকে অনেক দূরে ছিল তবে এর পদ্ধতির মূলত এটি প্রকল্পে পরিণত হয়েছিল।

কর্মক্ষমতা

সাধারণ ওয়েবসাইটগুলিতে আপনি সাধারণ আউটপুট ক্যাচিং এবং ওপকোড ক্যাশে দিয়ে চলে যেতে পারেন তবে বড় মাপের অ্যাপ্লিকেশনগুলিতে আপনার অবশ্যই মেমরি ক্যাচিং বিবেচনা করা উচিত, যা সাধারণত মেমচেডের চারপাশে নির্মিত হয়

xdebug বেশিরভাগই একটি ডিবাগার হিসাবে পরিচিত তবে এটি প্রোফাইলার হিসাবেও কাজ করতে পারে। আমি সম্প্রতি জেন্ডার সার্ভার ব্যবহার শুরু করেছি এবং আমি এর কোড ট্রেসিং বৈশিষ্ট্যগুলিকে একেবারে পছন্দ করি । দুর্ভাগ্যক্রমে সেগুলি সম্প্রদায় সংস্করণে উপলব্ধ নয় তবে xdebug একটি দুর্দান্ত শালীন বিকল্প।

আপনি যদি আপাচি ব্যবহার করছেন তবে এটির থেকে নরকটি উপযুক্ত করে নিনnginx এবং lighttpd হয় দৃশ্যত ভাল পছন্দ কর্মক্ষমতা জ্ঞানী, কিন্তু আমি তাদের অনেক ব্যবহার করেননি এবং আমি সত্যিই বলতে পারব না।

ডাটাবেস হিসাবে, ডক্ট্রিনের ক্যোয়ারী এবং ফলাফল ক্যাশে বিস্ময়কর কাজ করে, বিশেষত মেমক্যাচযুক্ত । এবং অবশ্যই, আমরা সামনের প্রান্তটি ভুলতে পারি না। ইয়াহুর ব্যতিক্রমী পারফরম্যান্স টিম সেরা অনুশীলনের একটি বিস্তৃত তালিকা একত্র করেছে । আমি আসলেই ফ্রন্ট এন্ড বিকাশকারী নই, তবে আমি একক প্রকল্পের দুর্দান্ত ফলাফল দেখেছি seen

অবশেষে পিএইচপি-র একদম নতুন আবর্জনা সংগ্রহের প্রক্রিয়া রয়েছে , এটি দেখার মতো।

নিরাপত্তা

কমপক্ষে বলতে গেলে, পিএইচপি সুরক্ষার বিশ্ব বিশৃঙ্খল is আমি কোনও বিশেষজ্ঞ নই, সুতরাং নিম্নলিখিতটি জেনেরিক টিপস হিসাবে বিবেচনা করুন:

  • ওপেন ওয়েব অ্যাপ্লিকেশন সুরক্ষা প্রকল্প

    লট এর ভাল জিনিস আছে, কিন্তু একটি দ্রুত পর্যালোচনা জন্য আপনি সেরা দশ তালিকা দিয়ে শুরু করা উচিত । এবং সেই সাধারণ দুর্বলতার জন্য পিএইচপি সমাধানগুলি গবেষণা করুন।

  • দুর্বলতা স্ট্যাক

    একটি ভাল অভ্যাস হ'ল পিএইচপি এর খোলা বাগ পর্যায়ক্রমে নিরীক্ষণ করা । এমনকি যদি আপনি নিজেই বিশেষজ্ঞ না হন তবে সুরক্ষা হুমকির বিষয়ে প্রায়শই কার্যকরী টিপস রয়েছে। এবং অবশ্যই, আপনার স্ট্যাকের প্রতিটি অন্যান্য অংশে অভ্যাসটি প্রসারিত করা উচিত, বিশেষত সর্বাধিক দুর্বল ব্যক্তিদের মতো ওয়েব সার্ভার এবং ডাটাবেস।

আইটি সুরক্ষা স্ট্যাক এক্সচেঞ্জের ভিড় আপনাকে আরও শিক্ষিত উত্তরের সাহায্য করতে পারে।

আরও পড়া


1
দুর্দান্ত উত্তর; দুর্দান্ত উপস্থাপনা; দুর্দান্ত লেআউট ... গ্রেট জব!
ডায়নামিক

@ জায়ে ধন্যবাদ! আপনি এটি সব পড়েছেন? : পি এটি বেশ লম্বা, আমি ভাবছিলাম যে এটি কিছুটা ছাঁটাই করা উচিত কিনা।
ইয়ানিস

হা, আমি চেষ্টা করেছি! ;-)
ডায়ামিক

আসলে ইয়ান্নিস, আমি আপনার জন্য একটি প্রশ্ন পেয়েছি। আমি সম্প্রতি পিএইচপি নিয়ে খুব আগ্রহী হয়েছি। আমি নিজে এটি শিখতে চেষ্টা করেছি, তবে আমার কিছুটা সমস্যা হচ্ছে। এটি পিএইচপি নিজে নিজে :-)- এর সাথেও বেশ ভাল বলে মনে হচ্ছে। আপনি কি কিছুটা দিকনির্দেশনা ভাগ করে নিতে আপত্তি করবেন? যদি তা হয় তবে আমি একটি চ্যাট রুম তৈরি করব।
ডায়নামিক

ঠিক যে উত্তরটি আমি খুঁজছিলাম তা ঠিক! এটি প্রচুর পরিমাণে তথ্য নেওয়ার জন্য নরক, আমি মনে করি অসুস্থকে পরের ঘন্টা ধরে কিছু শোষণ এবং টিঙ্কারিং করতে হবে তবে আপনি আমাকে শুরু করার জন্য কোথাও দিয়েছেন। ধন্যবাদ :)
ব্র্যাড মরিস

1

আইবিএম এর বিকাশকারী ওয়েব সাইটে পিএইচপি নিবন্ধগুলির একটি বিশাল স্তূপ রয়েছে , যার মধ্যে অনেকগুলি বেশ ভাল। তাদের পিএইচপি ওয়েব ফ্রেমওয়ার্কগুলির সাথে তুলনা করে নিবন্ধগুলির একটি সিরিজ রয়েছে এবং কেকপিএইচপি ফ্রেমওয়ার্ক ব্যবহার করে ওয়েব সাইটগুলি সম্পর্কে আরও একটি সিরিজ রয়েছে ।

ও'রিলির পুরানো "ওনল্যাম্প" ওয়েবসাইটটির পিএইচপি-তে এমভিসি সম্পর্কে একটি নিবন্ধ রয়েছে । এই নিবন্ধটির লেখক এমভিসির কিছু বিশদ ব্যাখ্যা করেছেন

ও'রিলি নিবন্ধগুলি কিছুটা পুরাতন তবে তারা আপনাকে চালিয়ে দেবে। আইবিএম বিকাশকারীদের স্টাফগুলি খুব ভাল এবং আপনি যা চাইছেন তা অনেকগুলি কভার করে।


1

আমি কয়েক বছর ধরে পিএইচপি এর আশেপাশে কাজ করছি। আমি ইয়ান্নিসের সাথে একমত যে এই প্রশ্নটি কোনওভাবেই উন্মুক্ত, আমি মনে করি আপনাকে কয়েকটি পয়েন্টার দিচ্ছি। প্রথমে, ইয়ান্নিস যেমন বলেছিলেন, এমভিসির দিকে আপনার খোঁজ করা উচিত, এটি করার জন্য, আমি দুটি ফ্রেমওয়ার্ক যা সুপারিশ করতে পারি তা হ'ল কোডইগনিটার এবং সিমফনি । প্রথমটি হালকা ওজনের এবং এটি খুব সহজেই শুরু করা সহজ তবে আপনাকে একটি দুর্দান্ত সেটআপ কাজ করার জন্য কিছু অতিরিক্ত কাস্টমাইজেশন যুক্ত করতে হবে, শীঘ্রই এটির মধ্যে। সিমফনি হ'ল ফ্যাবিয়েন পটেনসিয়ার দ্বারা শুরু করা একটি প্রকল্প যা সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ে অনেকগুলি নকশার নিদর্শন ব্যবহার করে, তবে, শেখার বক্ররেখা কোডইগিনিটারের চেয়ে অনেক বেশি খাড়া

এখন, দ্বিতীয়, আপনার ডাটাবেস সংযোগটি সন্ধান করা উচিত, যা আমাকে পিএইচপি, ডক্ট্রিন এবং প্রোপেলের জন্য দুটি সর্বাধিক বিশিষ্ট ওআরএম ফ্রেমওয়ার্কগুলিতে নিয়ে যায় । ব্যক্তিগতভাবে আমি চালিত ভালবাসেন এবং এমনকি লিখেছেন ইনস্টল একটি পরিষ্কার চালিত সেট আপ করার জন্য একটি উপর CodeIgniter ভিত্তিক অ্যাপ্লিকেশন, তবে, Symfony মধ্যে বেশি মতবাদ , কিন্তু দিন আপনি হয় একটি ব্যবহার আছে। আপনি যদি মতবাদ এবং প্রচারের বিষয়ে আরও কিছু পরীক্ষা করতে চান , আমি কিছুক্ষণ আগে জিজ্ঞাসা করা এই প্রশ্নটি একবার দেখুন ।

অবশেষে, আপনি যদি একটি টেমপ্লেট ফ্রেমওয়ার্ক, মত দেখব উচিত Smarty , Dwoo বা Twiggস্মার্টি সবচেয়ে প্রাচীন এবং তাই সবচেয়ে স্থিতিশীল। Dwoo উত্তরাধিকারী থেকে Smarty এবং পিএইচপি 5. আরও ভাল সমর্থন গলি থেকে একটা জিনিস অথবা দুই যোগ অবশেষে Twigg টেমপ্লেট বিকল্প প্রদান করা Symfony দল , আমি নিজেকে দেখতে না কিন্তু যদি এটা থেকে আসে Symfony দল এটি চমৎকার হওয়া উচিত

আশা করি এই পুরো স্পিচটি কিছুটা বোঝায়, ডেভিড

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.