Чи потрібні рамки в PHP? [зачинено]


9

Чи потрібні рамки PHP?

Які переваги та недоліки використання одного?


2
Нещодавно наткнувся на цю публікацію SO, яка виглядає досить проникливою щодо використання PHP без рамки stackoverflow.com/questions/3655145/…
Метт Молнар

Відповіді:


17

Ні. Але вони приємні.

Плюси : економить час, не потрібно самостійно перебудовувати код. Використовуйте безліч функцій, функцій та структур даних, які побудував хтось інший, який стосується вашого проекту.

Мінуси : Якщо самостійно не створити код, це може бути втратою при кращому рівні розуміння, на основі якого працює ваш проект.


1
але проблема полягає в тому, що день у день є багато рамок, я не знаю, яку з них використати
Tayyab Gulsher Vohra

4
@Tayyab Ви повинні використовувати `em all!
Арніс Лапса

1
Вибираючи рамку, ви вирішите виходячи з потреб вашої програми та вашого стилю кодування. Також запитайте себе: чи потрібна вам рамка для прокатки власного додатка чи CMS (Joomla, Drupal тощо)?
Даррен Ньютон

2
Ви повинні бути обережними щодо "невідомих невідомих". Якщо ви не використовуєте рамки, ризик забути або не знати про деякі речі, які для вас вирішують рамки, великий. Наприклад, чи правильно ви маєте справу з профілактикою нападів CSRF? Ваш додаток буде працювати без такої профілактики, але його буде легко зламати. Вибір основного фреймворку (будь-якого з них) означає, що ви отримуєте вигоду від усіх речей, якими мають займатися веб-програми, навіть якщо ви про це ще не дізналися.
Joeri Sebrechts

9

Рамки веб-додатків такі ж хороші, як і ваш досвід роботи з ними.

Кожна основа має криву навчання, поки ви не подолаєте цю криву, ви, ймовірно, зробите щось настільки задом назад, що ви заперечуєте всі переваги використання рамки. Ваш додаток буде непотрібно повільним для розробки, код буде важко дотримуватися, і вся справа порушиться, коли вийде нова версія фреймворку. Я б рекомендував не намагатися використовувати незнайомі рамки (або будь-які незнайомі технології) для проектів із строгим терміном.

Як можна краще використовувати рамки?

Вам доведеться скласти жменю жахливих програм і повторити. Врешті-решт ви з’ясуєте примхи, а використання фреймворку дозволить вам скоротити час розробки та краще організований код.

Чи варто використовувати рамку PHP?

Кожен, хто кодує достатньо PHP, врешті-решт використовує фреймворк. Питання полягає в тому, чи будете ви використовувати свій власний фреймворк або розроблений третьою стороною? На мій досвід, ви, ймовірно, ніколи не виробите власний фреймворк, який буде відповідати надійності та якості сторонніх рамок. Однак, розробка власних рамок представляється правом проходу до спільноти PHP, тому не дозволяйте мені відштовхувати вас від написання власного класу абстрагування баз даних.

Ось корисний графік:

введіть тут опис зображення


7

За словами Расмуса Лердорфа , вам не потрібні додаткові рамки, оскільки PHP сам по собі є рамкою. http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html


ну хлопці, я є biginner, і я намагаюся написати код, я новачок у ньому, і я хочу бути основним розробником php, тому, будь ласка, хлопці,
підкажіть

3
Ця стаття з 2006 року і бентежно застаріла.
Джонатан Річ

1
@JonathanRich: ця стаття може бути навіть застарілою, але вона все-таки бентежно цікава!

4

Ну, це дійсно залежить від розміру вашого проекту. Домашня сторінка, яка не має бази даних і не більше 10 сторінок, має бути занадто багато, головним чином, тому, що рамкові програми завжди потребують великої конфігурації та налаштування в більшості випадків, щоб відповідати конкретним потребам. І в деяких ситуаціях вони можуть бути трохи повільнішими, ніж кілька сторінок, що містяться у файлі (подумайте про всі рамки, які потрібно завантажити, щоб використовувати його функції.)

Тепер, якщо ви плануєте сайт середнього / великого розміру, із взаємодією з базами даних, веб-сервісами тощо тощо, вам знадобиться рамка, яка допоможе вам взаємодіяти з різними технологіями та організувати свій код таким чином, що, коли все порушиться, у вас буде габіліті для швидкого виявлення та ремонту. Крім того, якщо ви думаєте про клієнтів, вони завжди змінюють свою думку щодо програмного забезпечення, тому, якщо клієнту потрібно змінити або додати нову функцію, вам не доведеться перебирати весь код і думати про те, як я підключую цю нову функцію до всіх це сфагетті.

Є багато інших плюсів і мінусів, але це ті, хто вперше перейшов у голову.

Редагувати: я використовую симфонічний фреймворк у щоденних базах, а також робив роботу з php для університету (у мене були курси з веб-розробки, які не дозволяють використовувати жодних фреймворків), тому більша частина цього походить із цього досвіду.


1
добре, я початківець у php і ще не розвинув нічого великого, і я мушу плутати, що використовувати, і для чого мені слід по-справжньому я абсолютно порожній
Tayyab Gulsher Vohra

Першим кроком було б не використовувати їх, вивчити технології та те, як вони працюють (php, фреймворк, js, css тощо), потім, коли ви зрозуміли основу програмування php, а потім скористайтеся такою рамкою, як Zend або Symfony або CakePHP як збільшити свої програми
guiman

2

Ти жартуєш так?

Необхідність залежить від використання. Комп'ютери не потрібні людству, ні машини тощо.

Щодо переваг / недоліків, у кожного це своє!

Я хотів би показати якийсь приклад коду з моєї власної рамки:

class Product extends DatabaseRow {
    public $name='';
    public $price=0.0;
    public $images=array();
    public $description='';
    public table(){
        return 'products';
    }
}

$p=new Product();
$p->name='Bread';
$p->price=0.5;
$p->images=array('loaf1.jpg','bakery.jpg');
$p->description='Our premium diet bread.';
$p->save();

Бачите, що я там робив? Цей клас слугує зразком для магазину. Що таке особливе, крім OO? Якщо таблиці або будь-якого стовпця не існує, він створюється динамічно. 0 встановити сценарії. Звичайно, це специфічна риса в моїх рамках. Але ви отримуєте ідею.


Я хочу сказати, що у вас, хлопці, насправді я використовую 2 рамки, одна - це кодигітайтер, а інша - yii, і я хочу стати основним розробником, але мої концепції OOP не настільки хороші, що правда в тому.
Tayyab Gulsher Vohra

Як ви відрізняєте оператор 'UPDATE' і 'INSERT' у методі $ p-> save ()?
Srisa

@Srisa - я не встановив ідентифікатор. Щоб здійснити ОНОВЛЕННЯ, мені потрібно: " $p=new Product($the_id); $p->load();З'єднання load()в рядок" на відміну від перезапису всього рядка.
Крістіан

2

Не всі програми вимагають основи, але це робить більшість послідовних програм.

Перевагами є:

  • Не повторюйте себе - будь-яка нова програма буде мати спільну функціональність з багатьма існуючими програмами. Має сенс уникати повторень. Функціональний пакет пакетів, необхідний для більшості програм. Отже, ви заощадите час (і гроші).
  • Не обманюйте себе - розробка програмного забезпечення взагалі може бути дуже шумливо. Має сенс автоматизувати мирські речі. Рамка піклується про сантехніку, тому ви можете зосередитись на тому, щоб бути глибоко креативними. Отже, ви заощадите зусилля (та гроші).

Недоліками є:

  • Наш спосіб чи ні - Вам, можливо, доведеться слідувати жорстким умовам рамки, які можуть суперечити вашим догматичним уявленням про те, як слід робити (і, отже, вас люблять).
  • Набутий каркасний синдром - Ви можете стати занадто залежним від рамок, щоб зробити навіть найпростіші речі. Ви забудете, як маршрутизувати запити, отримувати доступ до баз даних, відображати об’єкти для запитів у базу даних тощо, оскільки фреймворк тримає вашу руку через все це.

Загалом, краще використовувати один.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.