За последние 24 часа нас посетили 15888 программистов и 1492 робота. Сейчас ищут 847 программистов ...

Создание своего расширения для РНР

Тема в разделе "Прочие вопросы по PHP", создана пользователем MoZart, 28 июн 2010.

  1. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Добрый день!

    РНР я занимаюсь недавно. Столкнулся с необходимостью создания своего расширения (DLL). Помогите это осуществить.
    Я работаю из-под Винды.
    Прочитал множество статей, но не нашёл в них инструкций по созданию расширения.
    У меня имеется готовый С++ код программы (далее МГП), который необходимо запихнуть в ДЛЛ для использования из РНР.
    Я ничего не понимаю в С++, разработчики МГП работают в С++ билдер и ничего не понимают в РНР . Мы сообща уже неделю бъёмся над созданием расширения, но своими силами не получается.

    Помогите, пожалуйста. Дайте подробные инструкции и действия по созданию ДЛЛ.
    Заранее спасибо!
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  4. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Читал.

    Цитата:"Далее, проще всего взять проект skeleton из подкаталога ext. Скопировать его в новый каталог (лучше всего рядом в каталоге ext). Переименовать все слова extname и EXTANAME на название своего расширения, в соответствующем регистре."

    А что собственно переименовывать? Чем открывать эти файлы? Где иcкать вышеуказанные слова? В папке Skeleton нет ничего похожего...

    Цитата:"Для компиляции понадобяться файлы библиотек php4ts.lib и php4ts_debug.lib. Первый можно скопировать из любого работающего дистрибутива PHP, а вот второй получиться только при компиляции всего проекта PHP. lib-файлы кладем в каталог проекта или в каталоги Release_TS и Debug_TS соответственно"

    Указанных файлов я не нашёл, ни первого, ни второго. Может потому, что у меня php5.2? тогда что делать в этой ситуации?
    Что значит получится при компиляции всего проекта? Что за каталог проекта?

    Цитата:"Компилируем проект. В случае удачи подкладываем полученную dll в каталог extensions рабочего дистрибутива PHP. И запускаем из командной строки простой скрипт проверки (с подправленными именами) tests/001.phpt"

    Как компилировать проект?
    Где пишется строка примера? В командной строке?
     
  5. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    судя по вопросам они нихрена не понимают и в C++. уж проект скомпилить в билдерах любая обезьяна теперь может.
     
  6. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    MoZart
    нужно оно вам, это расширение? может это велосипед будет?
    с С++ не знаком, но вот как я это понял:
    1.Скачиваете и ставите MS Visual.
    2.Скачиваете исходники PHP.
    3.Распаковываете .
    4.Заходите в каталог ext.
    5.Ищите каталог или файл skeleton.
    6.Копируете его.
    7.Открываете в MS Visual
    8.Переименовываете во всех местах где найдете extname и EXTANAME на название своего расширения соблюдая регистр.
    9.Берете файл php4ts.lib.
    10.Компилируем
    11.Появится файл php4ts_debug.lib
    12.Эти 2 файла кладете в каталог проекта или в каталоги Release_TS и Debug_TS соответственно
    13.Снова компилируем
    14.Должна появится нужная dll
    15.эту самую dll кладем в каталог extensions рабочего дистрибутива PHP
    16.пуск- выполнить cmd
    17.php -q F:/Libraries/PHP/php-4.3.8/ext/skeleton/tests/001.phpt

    примечания автора
    наверное как то так, сейчас придет кто нибудь кто хорошо с этим знаком и подскажет.
    там вроде доступно написано, насчет компиляции не уверен но рискну предположить, что там есть кнопка "скомпилировать"
    вот еше
    http://www.php.ru/forum/viewtopic.php?p ... a30b0a8d22
    http://habrahabr.ru/blogs/php/75388/
     
  7. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    А где его взять?????
    у меня нет такого файла.
     
  8. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    как это нету?у вас php на компе не установлен?
     
  9. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    у меня РНР 5.2
    В нём НЕТ такого файла.
    Там есть файл php5ts.dll и файл php5embed.lib. Других похожих нет.
     
  10. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    MoZart
    ну так еше бы, делайте все с поправкой на вашу версию, php5ts.dll вам нужен
     
  11. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Спасибо за внимание!
    Мы не претендуем на звание МЕГАПРОГРАММЕР и изначально объявляем, что во всём этом сравнительно недавно.
    Я откровенно прошу помощи. Для того эти форумы и созданы, как мне кажется. Я хочу понять то, чего пока не понимаю. А про компиляцию - я уже столько всякой разной литературы читал на эту тему, что, вероятно, путаюсь в полученной информации.
    Поэтому ещё раз напишу. Если Вам не сложно написать подробный порядок действий для создания своего расширения - помогите. А то, что я ещё многого не знаю - я ни от кого не скрываю.
     
  12. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Спасибо!
     
  13. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    MoZart
    наверху во вкладке build найдете все что нужно (вычитал на каком то форуме)
     
  14. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Где, простите?
     
  15. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    MoZart
    вы Microsoft Visual Studio поставили?
     
  16. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    ещё нет
     
  17. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Я скачал какую-то корявую версию... Есть ссылочка на нормальную?
     
  18. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    делайте все пункты по порядку
     
  19. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    MoZart
    ищите, я не программист С++ и у меня не виндоус....
    вы можете сказать что это за такая чудо библиотека, да еше нужная исключительно под виндой?
    вообще чем париться обратились бы к людям которые знают php и С++ к Mr.M.I.T. или Apple на этом форуме к примеру, естественно не бесплатно, так очень много времени убьете.
     
  20. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Дело в том, что это моя работа узнать, как это делается))) И сделать)))
     
  21. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Microsoft Visual Studio на официальном сайте вроде бы есть бесплатная пробная версия
    потом напишите пошаговый мануал как это делается?))
     
  22. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    мне кажется, что стоит начать с http://www.php.net/manual/en/internals2.counter.php
    и скорее всего не получится просто нажать пару кнопок и сделать пару замен, чтобы получить работающее расширение.
     
  23. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Кстати, если пройти по второй ссылке открывается оочень интересная тема. Только скачать этот VS wizard: PHP extension не представляется возможным - его просто нигде нет!

    Может кто знает, где этот файл проживает???
     
  24. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0

    А что-нибудь более русифицированное имеется???
     
  25. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    что то мне кажется рановато вам пока...
    http://www.rsdn.ru/res/book/web/Advance ... .xml#EAAAE