Я знаю, що це звучить як питання, що стосується точки зору, але дозвольте мені пояснити, звідки я берусь.
По закінченню коледжу я влаштувався на роботу в магазин PHP. Я пропрацював там півтора року і подумав, що навчився всього там, щоб дізнатися про програмування.
Тоді я влаштувався на роботу в магазин для внутрішньої розробки в значній корпорації, де вся робота була в C #. Своєю прихильністю до позиції я почав читати багато блогів і книг і швидко зрозумів, наскільки я помиляюся, думаючи, що все знаю. Я дізнався про тестування одиниць, нагнітання залежностей та декоративні зразки, принцип дизайну нещільного з’єднання, склад над дебатами про спадщину, і так далі, і далі - я все ще дуже поглинаю це все. Потрібно сказати, що мій стиль програмування повністю змінився за останній рік.
Тепер я вважаю, що я підбираю php-проект, який робить кодування для запуску друга, і я відчуваю себе повністю обмеженим, на відміну від програмування на C #. Мене дійсно турбує те, що всі змінні в межах класу повинні бути посилаються, додавши "$ this->". Мене дратує те, що жоден із IDE, які я намагався, не має дуже хорошого інтелігенції і що мої методи тестування модулів SimpleTest повинні починатися зі слова "тест". Мене зводить з розуму, що динамічне введення тексту не дозволяє чітко вказати, який тип параметра очікує метод, і що вам потрібно написати оператор переключення, щоб зробити перевантаження методу. Я не можу стверджувати, що ви не можете мати вкладені простори імен і доведеться використовувати оператор :: для виклику конструктора базового класу.
Тепер я не маю наміру починати дискусію PHP проти C #, а те, що я хочу сказати, це те, що я впевнений, що є деякі функції PHP, про які я або не знаю, або про них ще не вдається правильно використовувати. Я розміщений у своєму C # Всесвіті і маю проблеми побачити поза скляною мискою.
Тож я запитую, які ваші улюблені особливості PHP? Які речі ви можете зробити в цьому, що ви не можете або складніше в мовах .Net?