كبديل لـ Siler، وهو شيء خفيف الوزن وبسيط يعمل كمكتبة مع Swoole الجاهز، أوصي بشدة بـ Nano! التحقق من ذلك: https://nano.hyperf.wiki/#/en/
Siler عبارة عن مجموعة من التجريدات عالية المستوى للأغراض العامة والتي تهدف إلى واجهة برمجة التطبيقات (API) للبرمجة التعريفية في PHP.
الملفات والوظائف كمواطنين من الدرجة الأولى
لا توجد تبعية ، كل شيء يعتمد على وظائف PHP المضمنة
سريع للغاية ، لا توجد أعباء إضافية - المعيار 1 ، والمعيار 2 ، والمعيار 3
الملفات المسطحة ووظائف PHP القديمة تتأرجح على خادم HTTP عالي الجودة وعالي الأداء وقابل للتطوير ومتزامن وغير محظور.
اقرأ البرنامج التعليمي.
يتطلب الملحن leocavalcante/siler
هذا كل شيء. في الواقع، Siler عبارة عن مكتبة، وليست إطارًا (ربما إطارًا صغيرًا)، ويتم تحديد التدفق العام للتحكم في البرنامج بواسطتك. لذلك، لا توجد تكوينات مخفية أو هياكل دليل محددة مسبقًا.
استخدم SilerFunctional كـ lect؛ // فقط لكي تكون رائعًا، لا تستخدم معرفات غير ASCII ;)use SilerRoute;Routeget('/', lectputs('Hello, World!'));
لا أكثر ولا أقل. لا تحتاج حتى إلى إخبار Siler run
أو شيء من هذا القبيل ( puts
مثل echo
تم تقييمه بتكاسل).
use SilerRoute;use SilerHttpResponse;Routeget('/', fn() => Responsejson(['message' => 'Hello, World!']));
ستضيف وظيفة Responsejson
تلقائيًا Content-type: application/json
في رؤوس الاستجابة.
يوفر Siler دعمًا من الدرجة الأولى لـ Swoole. يمكنك استخدام وحدات Route
Request
Response
بانتظام لخادم Swoole HTTP.
use SilerHttpResponse;use SilerRoute;use SilerSwoole;$handler = function () {Routeget('/', fn() => Responsejson('Hello, World!')); };$port = 8000;echo "الاستماع على المنفذ $portn";Swoolehttp($handler, $port)->start();
تثبيت تبعية الأقران:
يتطلب الملحن webonyx/graphql-php
اكتب الاستعلام {مرحبا: سلسلة}
use SilerRoute;use SilerGraphQL;$type_defs = file_get_contents(__DIR__ . '/schema.graphql');$resolvers = ['Query' => ['hello' => fn ($root, $args, $context, $info) => "مرحبًا بالعالم!"] ];$schema = GraphQLschema($type_defs, $resolvers);Routepost('/graphql', fn() => GraphQLinit($schema));
تبعية أخرى للأقران:
يتطلب الملحن عقيدة/شروحًا
ثم:
/** * @SilerGraphQLAnnotationObjectType() */ استعلام الفصل النهائي {/** * @SilerGraphQLAnnotationField() */public static function hello($root, $args, $context, $info): string{return 'Hello, World!'; } }
use SilerGraphQL;use SilerRoute;$schema = GraphQLannotated([Query::class]);Routepost('/graphql', fn() => GraphQLinit($schema));
سيتم تخمين اسم نوع الكائن من اسم الفئة، وهو نفس الشيء بالنسبة لاسم الحقل ونوع الإرجاع (على سبيل المثال: PHP string
scalar ===
GraphQL String
scalar).
التوثيق
أمثلة
رخصة معهد ماساتشوستس للتكنولوجيا
حقوق النشر 2020 © إل سي