![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| p0zt3r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 4.2.2007 Где: Самара Репутация: 3 Всего: 6 |
icewind,
говорю же, инклюды делаешь .inc, а права на них прописываешь что-то вроде 750. Inc не должен запускаться и выполняться. В нём не может быть запускного кода по идее, если логически правильно кодить Добавлено через 2 минуты и 7 секунд ksnk, вот и я о том же. Для этого конечно, можно и мусор писать в каждом файле. А можно по-нормальному права прописывать и структурировать директории. --------------------
24*7*365*геморой*зарплата=0 |
|||
|
||||
| icewind |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 11.4.2009 Где: Ростов-на-Дону Репутация: 20 Всего: 20 |
он увидит надпись Restricted access. потому что
А если на все файлы права выставлять по 600 то пофиг какое у него расширение. К чему тогда этот вопрос? -------------------- ![]() |
||||
|
|||||
| p0zt3r |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 4.2.2007 Где: Самара Репутация: 3 Всего: 6 |
В тему топика.
В одной хорошей книжке по PHP 5 есть бестолковый пример:
Конечно, в соответствии с парадигмой ООП, эта задача должна быть разрешена так:
Но есть одно НО. В компилируемых языках программирования, интерфейсы появились для того, чтобы сторонний программист мог не зная реализации пользовался классом, скомпилированным другим разработчиком. В сущности, интерфейс (в том числе и COM/ActiveX) это всего лишь таблица функций и свойств, которая аналогична таблице функций в DLL и SO-файлах и представляет собой метаданные какой-либо модели предметной области. Прежде всего, нужно обратить внимание, что это особенность компилируемых языков, в которых нужно сделать классу условно говроря "фасад" для стороннего разработчика. В PHP же, неважно как наследуется класс и по сути само наследование, его роль в PHP, размыта, поэтому два приведенных кода вверху семантически равнозначны. Т.е. наличие у класса того или иного метода определяется интерпретатором динамически. Такая же особенность есть и в JS. А вот в AS, например, при генерации компилированного SWF, интерпретатор(компилятор?) анализирует ООП-модель на наличие в ней реализаций методов. Ну и как здесь быть? Если у класса был описан метод draw() и программист к нему обратился, ему не важен абстрактный класс IDrawableShape. И что по этому поводу может сказать PHP Manual? Да ничего! Делай, как хочешь. Так где же, собственно, стиль PHP? Добавлено через 3 минуты и 39 секунд icewind, ещё нюанс, в Apache есть AddType application/x-httpd-php .php Для .inc файлов этого можно не указать (как и делается по умолчанию), в результате чего, inc файлы перестают быть интерпретированными из прямого HTTP-запроса. И права доступа тут не при чём. --------------------
24*7*365*геморой*зарплата=0 |
||||
|
|||||
| SamDark |
|
||||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
icewind,
ksnk, p0zt3r, А кто вообще сказал, что в доступной извне директории должно лежать что-либо кроме статики и index.php? p0zt3r,
Не функциональный, а процедурный. Процедурный стиль != быдлокодинг. Быдлокодинг — это нечто не из этой оперы вообще.
Может ограничиться хорошим набором классов для начала? Что такое «парадигма Веб 2.0»? -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
||||
|
|||||
| p0zt3r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 4.2.2007 Где: Самара Репутация: 3 Всего: 6 |
SamDark, в доступной извне директории у меня лежит index.php, код которого я привёл выше.
Не процедурный, а структурный, если уж на то пошло. А что такое быдлокодинг? парадигма Web 2.0 Семантическая паутина. "Web 3.0" Добавлено @ 16:37 А что такое "хороший набор классов"? Хороший набор классов появляется на стадии проектирования Добавлено @ 16:38 да! и ещё клиентский фреймворк кодить надо. это вообще ацкий геморой будет. Добавлено @ 16:40 Да. И какая вообще статика? Покажите мне хоть один вебдванольный сайт, в котором есть хоть одна статическая страница! Статики вообще не должно быть, т.к. она подмножество динамического контента, выражаясь философски Добавлено @ 16:44 Моё видение Веб 2.0:
Это сообщение отредактировал(а) p0zt3r - 2.7.2009, 16:45 --------------------
24*7*365*геморой*зарплата=0 |
|||
|
||||
| SamDark |
|
||||||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
p0zt3r,
Так зачем был вопрос про расширения, если по-хорошему наружу и так ничего не торчит?
Бездумное написание кода «лишь бы работало». Очень и очень отличается от грамотного кода в любом стиле. Как правило такой код не может быть использовать повторно или дописан достаточно быстро.
Статика = CSS, JS, картинки, файлы.
Вот это уже хорошо. Советую не употреблять слова «Веб 2.0». Пошло звучит ;) -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
||||||
|
|||||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Я вообще-то хотел сказать, что если в файле Auth.php описан только класс, и никакого вызова его нет (как, я надеюсь, и принято писать), то умный хакер все равно ничего не увидит, есть там die('restricted access') или просто ничего нет.
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| p0zt3r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 4.2.2007 Где: Самара Репутация: 3 Всего: 6 |
SamDark, ну и CSS и картинки это не статика нифига. Скажем есть у тебя две версии сайта - одна в разработке, другая рабочая. Или версия сайта для слепых и версия сайта для тупых - можно конечно на клиент выгружать все эти варианты CSS и картинок и прочего "статического" контента, а можно выдавать скриптом. Производительность здесь не теряется, браузеры всё равно кэшируют эти страницы, появляется возможность учёта траффика сервера на уровне скрипта. Но всё это, я согласен, неубедительно.
С JS таже тема. Создал ты новую версию фреймворка и чё теперь? заменять файлы на сервере? Ну если ты об этом. А ты работал когда-нибудь в крупной фирме, где кретин-менеджер, кретин-заказчик и кретин-проектировщик? И все тебя имеют за сроки? SamDark, Веб 2.0 звучит вполне приемлимо. И моё видение это видение не моё. ksnk, так или иначе обращение к Auth.php должно вызывать 403, а не пиз--ж CMS о restricted access. Есть стандарты, есть правила, так надо каким-то уродцам делать исключения вечно. А если я хочу, чтобы у меня картинка красивая показывалась при открытии напрямую "секретных" файлов? Мне чё, надо во всем этом joomla-кале исправлять указанную строку? Это уже и называется быдлокодинг - лишьбыкак! --------------------
24*7*365*геморой*зарплата=0 |
|||
|
||||
| youri |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
не надо делать таких громких заявлений, если у тебя все генерируется динамически, это не значит, что у всех должно быть так проверял?
почему нет? +1
кому должно? Сначала подумай, как туда браузер попасть может
Есть такая штука как "здравый смысл", так надо каким-то уродцам с ортодоксальными взглядами проповедовать свою единственно правильную точку зрения нельзя создать систему, рассчитанную на любое изменение |
||||||
|
|||||||
| p0zt3r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 4.2.2007 Где: Самара Репутация: 3 Всего: 6 |
зачем тогда вообще создавать системы? чтобы плодить новых традиционалистов, только которые вообще не придерживаются никаких стандартов - не прошлых, не вымышленных? неправильно набранный вручную пермалинк Если бы всё держалось на "здравом смысле", Интернета вообще бы не было. Был бы только HTML 2.0 и сайт 1994 Вывод по топику У PHP нет своего стиля. Это всего лишь один язык из семейства Perl-подобных серверных языков. Исторически, PHP пришёл взамен Perl'а только из-за того, что содержал удобный фреймворк для работы с HTTP-аттрибутами, сессиями, сокетами, sendmail и др. и для рядового кодера представлял собой адаптацию Perl'а к задачам WWW. Переход к PHP многих разработчиков вернул в языки со строгим синтаксисом, в тоже время создав возможности для быстрой разработки веб-сайтов. Стиль быдлокодинга насаждается создателями самого PHP, как мы можем убедится из их официального сайта здесь. На данный момент PHP 5 Manual разъясняет только технические аспекты языка программирования PHP, предоставляя программисту самому создать свой стиль программирования на нём. Я считаю, что в эпоху RAD, создание приложений должно производится с помощью CASE-технологий, следовательно правильный и адекватный стиль программирования на PHP это использование всех доступных возможностей ООП-парадигмы, которая, к сожалению, не полностью реализуема на этом языке. Этот стиль подразумевает взвешенное использование динамических возможностей языка, в том числе и лямбда-функций, с оглядкой на безопасность. Кроме того, создание и поддержка сайта включает в себя не только разработку серверных сценариев, в общем случае которые представляют собой сценарии обработки HTTP и SQL запросов, но и правильную конфигурации WWW-сервера (IIS, Apache). К сожалению, PHP на Apache реализуется в виде mod'а. API Apache'а очень просто и не позволяет на уровне серверного сценария управлять дочерними процессами сервера, что обусловлено опять же не только архитектурой Apache (которая, в общем-то, сполна выполняет свои обязанности), но и требованиями безопасностями. Мне нравится PHP из-за синтаксиса, простоты в использовании, скорости работы и времени разработки. Существуют готовые решения, куча документации. Вцелом, PHP это круто! Это сообщение отредактировал(а) p0zt3r - 2.7.2009, 18:59 --------------------
24*7*365*геморой*зарплата=0 |
|||
|
||||
| SamDark |
|
||||||||||||||||||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
Предпочитаю таких мест избегать.
Да.
Я проверял. Отдача через php не быстра.
Стандарты и изменения как-бы два разных совсем понятия…
А какого чёрта что-то кроме index.php и картинок/CSS/JS доступно извне?
Не там смотрим: http://framework.zend.com/
Я что-то пропустил?
А также CGI… и вообще, кто заставляет Apache использовать?
Хотите сказать, что процесс запустить из PHP нельзя? -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
||||||||||||||||||
|
|||||||||||||||||||
| youri |
|
||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
система, рассчитанная на любое изменение - идеал, для ее создания нужно бесконечное количество времени. Выдача картинки для "секретных" файлов - хз зачем нужно при некоторых архитектурах может и так. Но если пользователь вручную набирает URL, то он не испугается надписи Restricted access
обоснуй это и плюс и минус. Главное чтобы стиль был, а какой - не так важно Lerdorf initially created these Personal Home Page Tools to replace a small set of Perl scripts he had been using to maintain his personal homepage php был ориентирован на создание сайтов Переход к PHP многих разработчиков вернул в языки со строгим простым синтаксисом
затрудняюсь с комментариями. Возможно для их сайта такой стиль приемлем. Но я бы не рискнул назвать это быдлокодингом
каких CASE-технологий не хватает php?
вам шашечки или ехать нужно?
так что ли? http://www.phppatterns.com/docs/design/hel...rld_in_patterns анонимные функции, кстати, появились в php-5.3.0
чего тебе не хватает? |
||||||||||||||
|
|||||||||||||||
| Sentox |
|
||||||||
|
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
Вот уж странно, во первых абстрактный класс не имплементируется, а во вторых интерфейсы и то что красным выделено относится и к PHP. Судя по всему Вы даже не описали интерфейса для абстрактного класса, почему и спутали интерфейсы с абстрактными классами.
Ещё страннее что PHP то же самое делает особенно когда описан интерфейс для классов. Это сообщение отредактировал(а) Sentox - 2.7.2009, 22:20 |
||||||||
|
|||||||||
| p0zt3r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 4.2.2007 Где: Самара Репутация: 3 Всего: 6 |
а что он делает?
упс Что-то я реально нагнал тут воды какой-то. Прочитал топик http://forum.vingrad.ru/forum/topic-71335.html и всё проросло само собой. Просто не надо было путать тёплое с мягким. И всё же зачем нужен интерфейс в PHP? в указанном топике, один из авторов говорит, что для удобства программирования. я тоже так считаю, и об этом указал в своём посте про интерфейсы в компилируемых языках. --------------------
24*7*365*геморой*зарплата=0 |
|||
|
||||
| Sentox |
|
||||
|
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
Да я сам нередко поднимал эти вопросы по началу, насчёт интерфейсов.
Честно говоря многие мало понимают мощности интерфейсов. Вы правильно говорили
Особенно обеспечить парадигму ООП.Например как в С++ надо обязательно типизировать передаваемые аргументы так и здесь:
Это обеспечит правильность функционирования допустим метода. Это сообщение отредактировал(а) Sentox - 2.7.2009, 22:44 |
||||
|
|||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |