Diaophp
AIC (All in Class)
Здесь используется язык PHP.
<?php
defined('IN_CDO') or exit('illegal infiltration.');
class test_service {
public function a($var=''){
return __CLASS__.__LINE__.PHP_EOL;
}
public function b(){
return __CLASS__.__LINE__.PHP_EOL;
}
}
URL: http://localhost/demo1/test_service/a?var=123456
CLI: php index.php /demo1/test_service/a 123456
DUBBO (на основе diaophp-provider-api): call_dubbo_service("com.github.io3x.php.test_service")->invoke('a',"123456");
Требования
Windows или Linux, PHP-5.6+
Для Windows и Linux PHP-5.6+ с Swoole-4.2.12
Для Dubbo:
Установка
CentOS7: https://github.com/io3x/php7-env-bin — PHP 7 env bin для Linux PHP, включая Apache. Windows: https://github.com/io3x/php7-env-bin/releases/download/46e9761/swoole_4.2.12-windows-x86_64.zip — Swoole для Windows.
Структура проекта
В структуре проекта есть следующие файлы и папки:
bin — папка с файлами для запуска Dubbo.
diaophp-consumer-web — потребительский веб-проект.
diaophp-framework-core — фреймворк проекта.
В запросе присутствуют названия файлов, написанных на разных языках программирования, а также имена классов и функций. В запросе также есть ссылки на файлы конфигурации и шаблоны.
К сожалению, без контекста сложно понять назначение этих файлов. Возможно, это часть структуры проекта или описание зависимостей между компонентами системы.
Также в запросе есть фрагменты текста, которые не удалось распознать. Это может быть связано с тем, что они содержат специальные символы или непечатаемые символы. ### Основные модули
diaophp-framework-core:
Дополнительные зависимости:
Файлы в папке app/libs (новые):
Команда запуска:
Запуск через DUBBO:
Diaophp-framework-core — основной модуль.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^index\.php$ - [L]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php/$1 [L]
</IfModule>
if ( !-e $request_filename ) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
web
�� func.php
�� index.class.php
��
����classes
�� op.class.php
��
����templates
����test
footer.html
header.html
index.html
api, web, service, uploader:
Команда запуска:
cd bin && ./exter-starter-sh.sh
Пример использования cron:
<?php
defined('IN_CDO') or exit('illegal infiltration.');
class crontab_demo {
/**
* @param string $crontab
*/
public final function one($crontab="*/1 * * * *"){
return date("Y-m-d H:i:s").$crontab;
}
��
Использование переменной $crontab для задания расписания.
Пример кода для тестирования производительности:
$tt = new cost_time();
$tt->point_time("�첽�¼�����ʱ��:");
for($i=0;$i<10;$i++){
rpc::event(md5_file(__FILE__).__LINE__,function($a,$b,$c){
mt_srand();
sleep(mt_rand(1,2));
echo date("Y-m-d H:i:s");
print_r(array($a,$b,$c));
},11,222,$i);
$tt->point_time("T:");
}
print_r($tt->result());
Пример вывода информации о затраченном времени:
$tt = new cost_time();
$tt->point_time("ͬ���ȴ����ص���:");
$r=[];
for($i=0;$i<3;$i++){
$r[] = rpc::event_callback(md5_file(__FILE__).__LINE__,function($a,$b,$c){
mt_srand();
sleep(mt_rand(1,2));
echo date("Y-m-d H:i:s");
``` ```
return [date("Y-m-d H:i:s"),$a,$b,$c];
},11,222,$i);
$tt->point_time("T:");
}
print_r($r);
print_r($tt->result());
$tt = new cost_time();
$tt->point_time("Пример кода:");
$tt->point_time("T:");
$event_callbacks = rpc::event_callbacks();
for($i=0;$i<10;$i++){
$event_callbacks->push_event(md5_file(__FILE__).__LINE__,function($a,$b,$c){
mt_srand();
sleep(mt_rand(1,2));
echo date("Y-m-d H:i:s");
return [date("Y-m-d H:i:s"),$a,$b,$c];
},11,222,$i);
$tt->point_time("T:");
}
$tt->point_time("T:");
print_r($event_callbacks->exec(5000));
$tt->point_time("T:");
print_r($tt->result());
Dubbo — это PHP-фреймворк от CrazyXman/dubbo-php-framework. Он предоставляет следующие возможности:
Существует четыре режима работы:
В каталоге diaophp-provider-api создайте класс xxx_service.class.php и demo2/shop_service.class, который будет содержать следующий код:
<?php
/**
* Class demo2
*/
class shop_service extends dubbo_provider_main {
private function m0(){
echo "m0";
}
/**
*
*/
public function m1($var1,$var2,$var3="abc"){
$r = json_encode_ex(func_get_args()).__CLASS__.__METHOD__;
echo $r;
return $r;
}
/**
* Асинхронный вызов m1
*/
public function async_m1($var1,$var2,$var3="abc"){
mt_srand();
sleep(mt_rand(1,5));
return $this->m1($var1,$var2,$var3);
}
}
Для вызова метода async_m1 используйте следующий код:
call_dubbo_service("com.github.io3x.php.shop_service")->invoke('m1',100,"�ҵĵ���-{$i}",timestamp13());
Также можно использовать классы consumer-web\consumer\cmer.class.php для вызова методов m3 и m4 в PHP и методов m7 в Java.
Запустите bin\demo-php-dubbo-cmd.bat для запуска PHP-провайдера и bin\java-dubbo-demo-cmd.bat для запуска Java-провайдера.
Создайте проект Java-provider-api с помощью IDEA.
Используйте MySQL и ZooKeeper.
Добавьте зависимость spring-boot-starter-data-jpa в файл pom.xml.
Создайте класс BootApplication.
Запустите приложение с помощью команды mvn spring-boot:run.
Откройте браузер по адресу http://localhost:10388/.
Вы увидите страницу приветствия.
Это пример использования PHP и Java Dubbo.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )