PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (21): « 1 2 3 4 [5] 6 7 8 9 ... » В конец

> Найдено сообщений: 314
Tox Отправлено: 07 Сентября, 2012 - 14:59:32 • Тема: Не видит объекты, если require • Форум: Объектно-ориентированное программирование

Ответов: 15
Просмотров: 5738
caballero
Tox пишет:
__autoload - насколько мне известно, для классов. В процедурном он не нужен. не?

это называется сарказм и ирония.
Tox Отправлено: 07 Сентября, 2012 - 14:07:54 • Тема: Не видит объекты, если require • Форум: Объектно-ориентированное программирование

Ответов: 15
Просмотров: 5738
digi
__autoload - насколько мне известно, для классов. В процедурном он не нужен. не?
Tox Отправлено: 07 Сентября, 2012 - 13:49:27 • Тема: Не видит объекты, если require • Форум: Объектно-ориентированное программирование

Ответов: 15
Просмотров: 5738
caballero
он есть, там где нужен
Tox Отправлено: 07 Сентября, 2012 - 13:10:08 • Тема: Не видит объекты, если require • Форум: Объектно-ориентированное программирование

Ответов: 15
Просмотров: 5738
Разобрался. Разная область видимости, так как require был вообще в другом классе и т.д. Переделал метод, чтобы тот возвращал строки и стал подключать в индексном - все норм. Спасибо!

Ох, уж это ооп
Tox Отправлено: 07 Сентября, 2012 - 12:45:45 • Тема: Не видит объекты, если require • Форум: Объектно-ориентированное программирование

Ответов: 15
Просмотров: 5738
caballero
нет. Экземпляр создается в начале индексного файла, обращение к свойству класса - из подключаемого к индексному файлу. Никаких функций, я поэтому и спросил, потому что непонятно, почему они друг друга не видят
(Добавление)
Виновником является метод другого класса:
PHP:
скопировать код в буфер обмена
  1. function metaSelector(){
  2.                 if (file_exists("pages/".$this->page_id.".php")) {
  3.                         require_once "pages/".$this->page_id.".php";
  4.                 }
  5.                 else {
  6.                         require_once 'pages/index.php';
  7.                 }
  8.         }

В индексном файле он и решает, какая страница будет подключена. Просто не стал вызывать этот метод и подключил сразу через require - все заработало.
Значит, они в разной зоне видимости? А самый оптимальный вариант, чтобы можно было обращаться к св-вам других объектов - это передавать в него объекты?
Tox Отправлено: 07 Сентября, 2012 - 12:15:31 • Тема: Не видит объекты, если require • Форум: Объектно-ориентированное программирование

Ответов: 15
Просмотров: 5738
EuGen
А как это сделать?
Tox Отправлено: 07 Сентября, 2012 - 12:12:12 • Тема: Не видит объекты, если require • Форум: Объектно-ориентированное программирование

Ответов: 15
Просмотров: 5738
Мелкий
до подключаемого файла - все работает. В подключаемом
PHP:
скопировать код в буфер обмена
  1. if( isset($db) ) {
  2.         echo 213;
  3. }

Ничего не выводит
Tox Отправлено: 07 Сентября, 2012 - 11:50:34 • Тема: Не видит объекты, если require • Форум: Объектно-ориентированное программирование

Ответов: 15
Просмотров: 5738
В начале файла создаются экземпляры классов. Далее, в зависимости от адреса, по которому перешел юзер, подключается определенная страница. Тут все нормально. Подключаемые страницы лежат в отдельной папке. И если я в этих страницах вызываю метод определенного класса, то ошибка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Call to a member function

php не видит, что написано в этих подключаемых страницах , а именно нельзя обратиться к св-ву нужного класса, экземпляр которого создан в самом начале индексного файла. Создавать новый экземпляр не вижу смысла - если он уже существует.
Пример. В самом начале индексного файла:

В подключаемом файле хочу получить доступ к паблик-свойству db (которое, существует, иначе, как бы выводились мета-теги и прочее, которые находятся в бд):

CODE (htmlphp):
скопировать код в буфер обмена
  1. Notice: Undefined variable: db
  2. Trying to get property of non-object

Может, я что-то не понял, но почему так происходит? Из подключаемой страницы свойства, методы и объекты не видно. Объясните, пожалуйста, в процедурном все работало
(Добавление)
То есть чтобы все работало, я должен в подключаемом файле заново создать экземпляр класса, тогда можно получить доступ к свойствам и методам.
Но почему? Ведь они все объявлены в индексном в самом начале
Tox Отправлено: 06 Сентября, 2012 - 17:14:20 • Тема: Изменение вида ссылки • Форум: Вопросы новичков

Ответов: 32
Просмотров: 1863
У меня похожая проблема. Хочу скрыть index.php:
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine on
  2. RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
  3. RewriteRule ^index\.php$ localhost/  [R=301,L]

Но он почему-то скрывается, только когда ссылка вида: localhost/index.php. А если localhost/index.php?profile, то ничего не происходит. mod_rewrite установлен.
Tox Отправлено: 05 Сентября, 2012 - 20:07:32 • Тема: Выбор первого фреймворка • Форум: CMS и фреймворки

Ответов: 20
Просмотров: 6407
EuGen
Фреймворк бесплатен, знаю. Просто везде в доках они показывают примеры с использованием их сервера. Создание проекта и так далее. То есть уже в подтексте "купите сервер, вбейте в консоль команды, все будет ок".
Stierus
Спасибо за инфу, пойдет в закладки и в пдф Улыбка
Tox Отправлено: 05 Сентября, 2012 - 16:30:47 • Тема: Тормозит апач • Форум: Apache и другие веб-серверы

Ответов: 1
Просмотров: 471
Раньше страница проекта генерировалась за 0,05 сек. Теперь - 1.05. В логах апача часто фигурирует:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.2 with Suhosin-Patch configured -- resuming normal operations

Никакие конфигурации не проходили, новые пакетики не ставил (именно для апача), ничего не трогал и не удалял. В инете искал, но перед этим люди что-то ставили, изменяли или устанавливали заново. А у меня эта ошибка появилась впервые, и никаких изменений в настройках не было вообще.
У меня LAMP-сервер, в документ рут и в Directory указана папка, находящаяся в home. На буке тот же самый проект, с такими же конфигами - все норм.
Отчего такое могло произойти и как это починить?
Tox Отправлено: 04 Сентября, 2012 - 19:42:44 • Тема: Выбор первого фреймворка • Форум: CMS и фреймворки

Ответов: 20
Просмотров: 6407
Ch_chov
дело не в фреймоврках. дело во времени и профите, КПД, так сказать.
digi
можно начать со систематизации всех возможных приемов и фич для конкретных областей в конкретной системе. То есть своего рода "пособие для умных", которые содержит в себе приемы и идеи, которые стоит применить каждому в своем проекте, ну или просто для развития, чтобы юзер мог "прокачать" свой скилл.
Проблема в том, что люди пишут отличные статьи, приводят примеры решений отдельных ситуаций, как они с ними справились и так далее. И вся эта информация раскидана по сети, она написана на разных языках, но все-таки находится в открытом доступе.
Собрать их в одном месте, пусть даже на вики движке, не туториалы и маны, например, как сделать график, а именно нестандартные идеи - наверно, у каждого они есть. Да даже и стандартные - все равно будет полезно, если кто-то выложит свой класс, свой метод, другой изменит, оптимизирует, предложит другой вариант реализации - тогда уже будет база, на которой можно начинать "что-то конкурентоспособное"
Tox Отправлено: 04 Сентября, 2012 - 19:18:17 • Тема: Выбор первого фреймворка • Форум: CMS и фреймворки

Ответов: 20
Просмотров: 6407
digi
у меня, к сожалению, не такой большой опыт в разработке(6 месяцев), чтобы писать фреймворк. Однако, я написал диплом, где программная реализация на php, вот мараю электронные листы в libre office.
Причем в 2ем мы далеко не уйдем, для такой задачи нужен коллектив единомышленников, сообщество со своими идеями. Продукт, над которым будет затрачено много человеко/часов должен будет иметь ясные отличия, плюсы, которых нет у конкурентов. А чтобы сделать такое, нужен опыт.
Tox Отправлено: 04 Сентября, 2012 - 18:02:07 • Тема: Выбор первого фреймворка • Форум: CMS и фреймворки

Ответов: 20
Просмотров: 6407
Начал пробовать Zend. Сразу понравился магазин (http://shop.zend.com/), ребята прям как Red Hat - "хотите конфетку? придется заплатить". И в туториалах сразу рекламируют свой сервер, показывают, как создать проект и т.д. Регаетесь, получаете плюшку, а потом - "Valid until: 04 Oct 2012". Все четко.
А не кажется ли вам, что разработчик, использующий тот или иной фреймворк, платит сильной привязкой к этому продукту? В один прекрасный момент "они" скажут, что "ребят, мы вот посовещались и решили, что далее все будет платным, спасибо за участие, оставайтесь с нами". И юзеры останутся со старым продуктом в приятном смятении.
Я за СПО и мне не понять данную стратегию. Да, они делают отличные библиотеки, продумывают структуру всего и много-много других подводных камней, и писать свои библиотеки, это, конечно, моветон, но зато вы точно уверены в завтрашнем дне, вы точно знаете свой код, вы быстро в нем разбираетесь и модифицируете его.
Да, Zend шикарен, я пришел к такому выводу после прочтения http://habrahabr[dot]ru/post/31168, как и все разработчики, они показывают нам "свой путь", то есть "как надо", как должно быть, свое видение, так сказать. На одной из конференций Убунты (я не помню, может и не убунты) Томас Твейт показал презентацию, как он разобрал тостер, а затем сделал свой. Да, ему это обошлось недешево, в плане запчастей, и он потратил больше времени, изобретая свой велосипед. Может это плохой пример, но в СПО как раз свой велосипед изобретать не стоит, на то оно и СПО. Вы пользуетесь техническим прогрессом и достижениями тех или иных людей, связанных с разработкой.
Применительно к фреймовркам, я считаю, это недостаточно удобно - вы должны быть полностью погружены в конкретный вами выбранный продукт, "тостер". Методы, классы и прочее. Томасу достаточно было понять структуру, как работает тостер, для создания своего он использовал детали, которые он мог купить в ближайшем магазине. И он был полностью независим от кампании N, которые эти тостеры выпускала. + Он мог в любой момент модифицировать этот тостер, например, увидев то, что ему казалось неприемлемым, можно было поменять, на то, что подходило именно ему.
Да, тостер - это не ПО. Но написав свое ПО, вы можете спать спокойно - любую ошибку или уязвимость при обнаружении вы легко устраните.
Сегодня я был на конференции "Математические проблемы современной теории управления системами и процессами". Там был очень интересный доклад о супер компьютерах, их использовании и так далее. Когда разработчики представляли свое ПО (которое производит различные мат. расчеты, где нужно +64 процессора) заказчикам - разным нефтяным, авиационным кампаниям, последние требовали, чтобы ПО было не "самописное", а лицензированное, которое используется ведущими фирмами, стабильно и практично. И это понятно, заказчик хочет быть уверен в том, что разработчик в своем ПО не допустил ошибки, пусть лицензионные продукты стоят 3-5млн. рублей в год, но зато существует гарантия, что продукт надежен и сделан профессионалами. (А главное - иностранцами. )
Это печально, ведь те же самые разработчики широко известных программных продуктов, тоже могли допустить ошибку, которую потом быстро зафиксят - это же их работа. Я замечаю такую же ситуацию и в веб-разработке. Практически у каждой вакансии в описании есть галочка - "желательно знание N фреймворка". Возвращаясь к тем программистам, которые писали ПО для супер компьютера. Есть ли бы не желание заказчика, то можно было точно также развивать то самое ПО, адаптировать его именно под нужные задачи, например, моделирование выкачивания нефти с глубины 2-3 км (на самом деле, это целая наука, поверьте), в конце концов, лицензировать его и выйти на мировой рынок. Но дядям, которые платят, это не надо, точнее их интересует только свой бизнес и чтобы "все работало", а работает "при использовании N-продукта".
Да, я привел 2 довольно-таки спорных примера - создание собственного тостера и разработкой ПО. Проблематика у них общая - мы используем не свои продукты, не свои идеи, а заимствуем их, прикрываясь изречениями вроде "это прогрессивные методы, их надо использовать". При этом мы не поддерживаем те же самые идеи наших соотечественников, пусть вы написали свою CMS и выложили ее на гитхаб, все равно, на работе вас заставят использовать N, так как "она надежнее, ее делали умные люди".
Я считаю, что разработчик должен делать сам, на то он и разработчик. Выбор фреймворка - да, дело каждого, "удобный инструмент" и так далее. Но вы не идете дальше, вы используете готовую структуру, например, контроллер, вид, модель, потому что она зарекомендована и вроде как идеально правильна.
"Перед разработкой N, когда я впервые столкнулся с поставленной задачей, я смотрю, как делают другие. Просматриваю множество идей, уже готовых решений и выбираю из них самое лучшее..." - так, наверно, каждый разработчик может сказать про себя, все мы с этого начинали. А кто может продолжить: "... а потом, на основе всего мне понравившегося и своего опыта, я делаю свой вариант, по-моему мнению идеально подходящий для данной задачи, в который включаю свои идеи и делаю его по той структуре, какой я ее вижу."? Если вы юзаете фреймворк, мне кажется, вторая часть уже невозможна. Вы же используете чужой каркас. Сегодня я понял, что когда все смотрят направо, полезнее всего смотреть налево, а именно напоминать, что мы разработчики, инженеры, технари. Мы должны придумывать свои "скелеты" и идеи, продвигать их и воплощать в жизнь. Сейчас не про использование того или иного продукта, полезность его использования и прочее, так как каждый выбирает сам, и все что я написал - это только моя извращенная точка зрения. Я вижу здесь много профессионалов своего дела, почему они не хотят собраться вместе и сделать что-то наше, русское, конкурентоспособное, чтобы остальной мир понял, что мы тоже, не только потребители, что нам есть, что показать?
Написано много, какой вывод сделать для себя - каждый определится сам. Может, я ошибаюсь, и все, что я написал - полнейшая чушь.
Tox Отправлено: 03 Сентября, 2012 - 23:22:13 • Тема: Индексация. • Форум: Прочее

Ответов: 6
Просмотров: 49
Predator пишет:
Всели cms хорошо индексируются поисковиками? Какая новостная cms лучше?

тогда вам прямо в blogspot, или "сайты гугл".
А вообще есть хорошая цитата: "Чем полезнее сайт, тем меньше усилий придется приложить для его оптимизации" [индексации] Maile O.

Страниц (21): « 1 2 3 4 [5] 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB