跳到内容
当前位置:首页>戏曲>论中国古代戏曲批评中的本体自觉

论中国古代戏曲批评中的本体自觉

  • 2026-09-30 07:16:13
论中国古代戏曲批评中的本体自觉

点击蓝字,

 关注我们 

论中国古代戏曲批评中的本体自觉

作者:何厚耀

摘要:在古代戏曲批评中,戏曲的本体自觉大略可分为求同、辨异、确立、融合四个逻辑阶段。宋末元初至明中叶,戏曲批评家出于种种外在目的,力图从源流、发生、文本结构、形式、功能等方面确认戏曲与文学、音乐的同质性。明中叶以后,将戏曲归为文学的做法逐渐显露弊端,戏曲批评家从语言风格、音律、文体等方面明确区分戏曲与传统诗文,以期拨乱反正,寻求戏曲自身的独特性。同时,他们还发现了戏曲的综合性、民间性、再现性、当场性等外在于文学、音乐的艺术特征,从而构建起戏曲自身独特的领域和艺术特征。当戏曲自身的艺术特征已然得到认可,批评家又积极将原来属于文学、音乐的艺术特征进行融合,使其服务于戏曲的整体表现,从而确认了戏曲的多重审美维度。然而,在古代政治和文化的整体框架下,戏曲本体自觉的过程却未能最终完成。

关键词:戏曲批评 本体自觉 艺术分类

纵观古代戏曲批评,将戏曲视为文学或音乐范畴下的一种具体艺术形式,是批评家的基本立场。他们或以诗文论曲,如李贽、徐渭、汤显祖、袁于令、金圣叹等,论戏曲时径称“文”,与诗文同论;或以乐论曲,如朱权、李开先、沈璟、徐大椿等,试图将戏曲接续至古代雅乐传统,论证其为古乐遗存。由于古代诗乐一体的深厚传统,纯粹以文学或音乐视角审视戏曲者较少,多数批评家兼而有之,仅略有侧重。

然而,我们仍可看到戏曲逐渐突破诗、乐藩篱,走向自觉的过程。这一过程涉及对戏曲本质、艺术特征及其在艺术门类中位置的认识,是理解古代戏曲批评的重要基点。揭示这一自觉历程,并借此对比中西方艺术分类方式的差异,对全面把握中国古代戏曲批评具有重要意义。

戏曲的本体自觉大致可分为四个逻辑阶段:求同、辨异、确立、融合。

一、文、乐范畴下的求同

求同是在特定的历史文化环境中确认戏曲与文学、音乐同质性的过程。

从《太和正音谱》所引用赵孟和关汉卿区分文人与优伶之语可知,求同在宋末元初已然滥觞。有元一朝直至明前期,戏曲始终背负着“优伶贱艺”、“亡国之音”的非议,加之官方出台禁令,戏曲的生存环境十分堪忧。在此背景下,寻求戏曲与文学、音乐的共性,将戏曲规定为文学、音乐范畴下的一种艺术形式,实际成为戏曲批评家借诗、乐的崇高地位为戏曲争取生存空间和价值认同的方式。因而在此阶段,有关求同的论述最为普遍。

到了明代中叶,求同有了新的背景和内涵。其一,文学复古运动盛极一时,一些戏曲家或是文学复古派的成员,或与文学复古派成员交好而受到影响,他们的戏曲创作实际上成为文学复古运动的一部分。为了给这些戏曲作品正名,从而为文学复古运动壮大声势,以王世贞为代表的批评家自觉将文学规范用之于戏曲批评,力图继续将戏曲纳入文学的范畴。其二,阳明心学此时延伸至戏曲领域,以李贽、徐渭为代表的批评家受心学影响,主张一切的文学都应当自由地抒发性情,同时认为最能抒发性情者无过于戏曲,因此他们有意识地从“情”的角度论证戏曲与诗文的同质性。

万历以后,戏曲创作和演出都已繁荣,文学复古运动也逐渐走向没落,求同的现实必要性已然衰减,戏曲批评的整体氛围已经发生变化,但仍有一些戏曲批评家保持着思维上的惯性,从戏曲与文学、音乐的共性着眼,将戏曲置于文学、音乐的视域之下。这可以视为求同的余绪。

具体而言,求同包括源流、发生、文本结构、形式、功能等方面。

在源流上,曲家梳理出从古乐到戏曲的发展路径:

古乐、古民歌—《诗经》—骚、赋—乐府—唐绝句—宋词—北曲—南曲

这条路径同时适用于文学本位与音乐本位的戏曲批评家,只是前者仅追溯至《诗经》,有“骚、赋”环节,后者追溯至古乐,无“骚、赋”环节。这样的梳理在古代戏曲批评中十分常见,“在中国文学史上,向有诗三百篇、楚骚、汉赋到唐诗、宋词、元曲以及明清传奇小说的认识程式……但相比较戏曲本身在寻求身份认同背景中所包含的特殊因素,可以说,没有任何一种其他文学理论有在戏曲中那样,对于这一问题考察得如此频繁和主动”[1]。在各曲家的表述中,这个维度的长度可长可短,长者梳理全程,短者则只包含唐诗、宋词、南北曲三个环节。但他们的目的大多相同,那就是通过溯源说明戏曲的产生和兴盛是文、乐发展的必然结果,从而赋予戏曲合法性,即所谓“夫诗也者,古《康衢》也,今渐而里之优唱也,古《坟》也,今渐而里唱者之所谓宾之白也,悉时然也,非可不然而然之也”[2]。同时他们也要给予戏曲一个定位,将其规定为诗或乐的一种,即证明“歌曲乃诗之流别”[3],或“曲,乐之支也”[4]。

戏曲批评家也热衷于从发生论上讨论戏曲的源头。这个源头各家所论并不一致,如胡祗遹认为是现实的“抑郁”[5],朱有燉认为是“胸中之藻思”[6],何良俊、孟称舜认为是“情”[7],李贽认为是“童心”[8],徐渭认为是“兴”[9],尤侗、吴伟业认为是“不平”[10],李渔认为是“天地英华之气”[11],等等。其共通之处在于,他们都试图从发生角度来寻求戏曲和文、乐的共性,“盖词与诗、曲,体格虽异,而同本于作者之情”[12],堪称他们论述的典型范式。

在文本结构上,有戏曲批评家将戏曲与《诗经》比较,试图证明戏曲的文本结构源自《诗经》等文学经典,如毛声山云:“《琵琶》曲多有连用前腔者,此《诗经》文法也。《诗经》每篇几章,章几句,往往后章与前章更不改换,中间略易一二字,便觉前后浅深不同。《琵琶》之曲,亦犹是尔。”又云:“《琵琶》南曲,多有合前者,此亦《诗经》文法也。”[13]将“前腔”、“合前”等音乐结构与《诗经》重章叠句的文本结构比较,显然仅着眼于戏曲文本,有失偏狭与牵强。然而,这样的偏狭与牵强,恰恰最能凸显论者希望将戏曲归于诗的范畴之下的强烈意图。

在形式上,我国古代所有诗体文学在历史的某一阶段都可以和乐而歌,而“自来称诗篇之入乐者曰乐府”[14]。南北曲,包括散曲和戏曲,也都和乐而歌,因此也可以被纳入乐府之列:“古人凡歌,必比之钟鼓管弦,诗词皆所以歌,故曰乐府……然今世之便俗耳者,止于南北曲。”[15]这一特征最直观可察,因此也是古代戏曲家将戏曲纳入文、乐范畴下的直接原因。

在功能上,曲家引入传统诗学的“风教论”,强调戏曲的现实功能,如周德清说:“关、郑、白、马一新制作,观其所述,曰忠,曰孝,有补于世。”[16]又如朱有燉作杂剧,往往明确带着褒扬忠孝节义的目的,以期达到“可少补于世教”[17]的效果。至于抒情功能,明中叶以前戏曲批评家从诗学引入了“发乎性情,止于义理”[18]的论述,在提出戏曲的抒情功能时强调其应当受到一定节制,从而回避戏曲情感表达过于直露的指责。明中叶以后,一方面戏曲逐渐繁荣,其生存态势有所好转,另一方面心学影响逐渐扩大,延伸至戏曲领域,戏曲批评家渐渐抛弃这种节制,直截了当地提倡性情的自然抒发,如李贽云:“盖声色之来,发于性情,由乎自然,是可以牵合矫强而致乎?故自然发于性情,则自然止乎礼义,非性情之外复有礼义可止也。”[19]所谓礼义,本是外在的社会规范。李贽所区分内在的礼义和外在的礼义,是心学区分内在的良知与外在的天理在文艺理论中的体现。他要求抛弃外在的礼义,实际上就是要打破此前戏曲批评家加之于戏曲的限制,要求戏曲自然且自由地抒发情感。强调戏曲的现实功能和抒情功能,是将戏曲纳入传统诗学范畴的一种具体方式,目的仍在于说明戏曲“正当与《三百篇》等观,未可以雕虫小视也”[20]。

将戏曲归类于文、乐的范畴,同时意味着戏曲外在于文、乐的成分和特征被忽视,甚至被剥离。如在创作主体方面,文人被确认为戏曲的唯一重要主体:“杂剧出于鸿儒硕士、骚人墨客所作。”[21]而作为戏曲演出活动主体的优伶却被排斥在外了,他们在戏曲活动中的重要性得不到应有的认可:“非是他当行本事,我家生活,他不过为奴隶之役,供笑殷勤,以奉我辈耳。子弟所扮,是我一家风月。”[22]古代优人们从事的滑稽表演,也被排除在戏曲产生的历史之外:“古之优人,第以谐谑滑稽供人主喜笑,未有并曲与白而歌舞登场如今之戏子者;又皆优人自造科套,非如今日习现成本子,俟主人拣择,而日日此伎俩也。”[23]

求同策略存在较大的理论失误。其方法上只关注戏曲与文学、音乐相似的特征,对戏曲的多元构成视若无睹,加之对散曲、剧曲和戏曲诸多概念的界分不明,混同使用,不免以偏概全。其逻辑上以归类替代界定,以动态的梳理替代静态的分析,未能对戏曲的本质特征和所处位置做出明晰的判断。当然,这种认识自有其产生的历史背景,须正确认识,却无须过分苛责。而且戏曲家基于此立场做出的判断也有部分正确描述了戏曲的一些基本特征,尽管这些描述基于另外的目的,但对戏曲的本体自觉仍具有一定的奠基意义。

二、文、乐范畴下的辨异

将戏曲纳入文学范畴的结果是以文学的审美规范要求戏曲。在理论上,戏曲批评家提出戏曲要有“琢句之工,使事之美”[24]。在实践中,戏曲作家在创作时搪塞故事、堆砌辞章、追求骈偶。在明中期文学复古运动的大背景下,这种倾向蔚然成风,形成骈绮派戏曲,致使戏曲陷入艰深难解的困局。于是戏曲批评家对此纷纷提出反对,并努力寻求戏曲与诗文的差异,以期拨乱反正,确认戏曲的独特性。这一过程即为辨异。

辨异集中体现在语言风格、音律两个方面,另在文体方面略有涉及。

在语言风格方面,戏曲家针对骈绮派戏曲,提出戏曲应当使用浅近通俗的本色语,并且赋予这种语言风格一定的区别性意义。明中叶,批评家的反对相对温和,以本色语言作为区别特征的意识隐而不显。如李开先云:“用本色者为词人之词,否则为文人之词矣。”[25]至明后期,戏曲批评家对骈绮派戏曲的反对更加激烈,分析更加深入,辨体意识也更加明显,已经事实上将本色语言作为戏曲与传统诗文的区别性特征。如徐复祚不仅不遗余力地抨击各骈绮派戏曲的代表人物和作品,并提出:“传奇之体,要在使田畯红女闻之趯然喜,悚然惧,若徒逞其博洽,使闻者不解为何语,何异对驴而弹琴乎?……文章且不可涩,况乐府出于优伶之口,入于当筵之耳,不遑使反,何暇思维,而可涩乎哉?”[26]可见,此时戏曲批评家对骈绮派戏曲的不满已经到达极致,他们迫切地希望拨乱反正,确立戏曲自身应有的语言风格。至清初,浅近本色的语言已经完全具有了区别戏曲与传统诗文的意义。如李渔云:“传奇不比文章,文章做与读书人看,故不怪其深,戏文做与读书人与不读书人同看,又与不读书之妇人小儿同看,故贵浅不贵深。”[27]又如徐大椿云:“若必铺叙故事,点染词华,何不竟作诗文,而立此体耶?”[28]可见,本色论在一定程度上正是戏曲批评家立足于戏曲与传统诗文的差异,力图寻找戏曲本身艺术特征的理论尝试。

在音律方面,戏曲与诗词最突出的差异在于音韵。北曲杂剧仅用三声,且平声分阴阳;南戏传奇虽用四声,却四声皆分阴阳,均与诗韵、词韵不同。因此,音韵成为戏曲家区分戏曲与诗词的重要方面。元代周德清撰《中原音韵》,提出“平分阴阳、入派三声”,系统构建曲韵体系,并有意对比《广韵》,已经体现出以音韵区分曲与诗词的隐含意味。元至明中期,将戏曲规定为文学、音乐的倾向是戏曲批评的主流,因而音律往往被当作戏曲音乐本质的例证,尚未被视作区分的特征。明后期至清初,强调戏曲音律也具有了一定的现实针对性。以徐渭、汤显祖为代表的一些戏曲家创作了大批重情辞、轻音律的戏曲作品,造成了案头之曲与场上之曲的判然分野。因此,强调音律的戏曲批评家对徐、汤二人往往有所指摘。如沈德符批评徐渭云:“徐文长渭《四声猿》盛行,然以词家三尺律之,犹河汉也。”[29]可见,此时戏曲批评家强调音律已明显带有对视戏曲为文学之做法的不满,以及寻求戏曲自身独特性的企图。他们从音韵入手,明确要求区分戏曲与诗词,如徐复祚云:“诗有诗韵,曲有曲韵,诗韵则沈隐侯之四声,自唐至今,学人韵士兢兢守如三尺,罔敢逾越,曲韵则周德清之《中原音韵》,元人无不宗之。曲之不可用诗韵,亦犹诗之不敢用曲韵也。”[30]至清,黄周星更为具体地阐述了这种区别:“三仄更须分上去,两平还要辨阴阳。诗与词曾有是乎?”[31]使用的音韵与诗词不同,本是对戏曲的客观描述,但在戏曲批评家的论述中,这一描述却往往带有强烈的区别意义。这种意义的附加,是将戏曲视为诗词之流而产生弊端的背景下,戏曲批评家纠错意识的体现。除音韵之外,王骥德还从文乐关系论述了戏曲与古乐的区别,云:“古乐先有诗而后有律,而今乐则先有律而后有词。”[32]此论应者寥寥,但不失为王氏对戏曲本体特征的独特体认。

在文体方面,戏曲与诗词自是天壤之别。但因为戏曲批评家对单支曲子的关注高于戏曲剧本整体,从文体方面来讨论戏曲与诗、词差异的论述并不多见,仅在文本的长度、容量偶有提及。首先戏曲家从单支曲子着眼,提出曲与词的差异在于词往往分两阙,曲只取其一半。《南词叙录》云:“词调两半篇乃合一阙,今南曲健便,多用前半篇,故曰一支。”[33]其次,整体而言,戏曲家认为戏曲相比诗词有更大的容量,以及更加丰富的表达。如王骥德云:“夫诗之限于律与绝也,即不尽于意,欲为一字之益,不可得也。词之限于调也,即不尽于吻,欲为一语之益,不可得也。若曲,则调可累用,字可衬增。”[34]严格来说,文本的长短并不能构成文学类型区分的标准,但因为批评家往往由此谈到曲的联套和字的增衬,事实上也触及了戏曲与诗词的区别性特征。

辨异仍是不充分的,甚至是片面的。批评家或出于反对戏曲骈绮化、文人化的目的,或囿于提升戏曲社会认同的命题,往往批评大于构建,未能在理论上有效区分戏曲与文学。但因为已经有着明确的辨体意识,这些论述实际上已经对戏曲本体自觉起到了启发作用,可视为戏曲本体自觉的萌芽阶段。

三、戏曲自身艺术特征的确立

确立是在辨析戏曲与文学、音乐差异的前提下,寻求戏曲外在于文学、音乐的艺术特征,以寻求戏曲自身艺术特征和独特领域的过程。戏曲是一门综合艺术,在文学与音乐之外仍有许多组成元素。将戏曲规定为文学或者音乐,意味着对这些元素的剥离。反之,当这些元素得到认可,视戏曲为文学、音乐的观点便不攻自破,戏曲的本体自觉也就进入了新的阶段。

文学本位与音乐本位的冲突为戏曲突破诗、乐藩篱提供了前提。尽管古代诗体文学与音乐的关系十分紧密,但毕竟属于两种不同的艺术形式。当戏曲同时被规定为文学和音乐时,二者必然有所冲突。这种冲突从杨朝英与周德清在散曲领域的争论肇始,经王世贞与何良俊关于《拜月亭》与《琵琶记》的争论而激化,最后到汤沈之争而彻底爆发,几乎贯穿了半部中国戏曲史。在这个历程中,文学本位与音乐本位论者各自形成了“宁声叶而辞不工,无宁辞工而声不叶”[35]和“正不妨拗折天下人嗓子”[36]的极端表达。由于汤、沈二人极大的影响力,在二人的争论之后,文学本位论者与音乐本位论者均一定程度接受了对方态度,形成了“合则并美,分则两伤”[37]的“并美说”,这种观点在明后期成为戏曲批评的主流看法。“并美说”的出现对于戏曲的本体自觉具有极其重要的意义。这意味着戏曲批评家认识到无论是文学还是音乐都不足以完全概括戏曲的全部特性,他们不再以单一的定位审视戏曲,承认戏曲同时具有文学性和音乐性。换言之,即戏曲作为综合艺术的多元性得到了认可,这就为认识戏曲其他外在于文学、音乐的特性提供了前提与借鉴。

戏曲批评家对戏曲外在于文学、音乐之特征的认识还包括戏曲的民间性、再现性、当场性等。

对于戏曲民间性的认识,是对戏曲语言风格论述的进一步展开。首先,戏曲批评家提出戏曲语言应当浅近本色,是因为戏曲起源于民间。《南词叙录》最早提到戏曲的民间源头:“永嘉杂剧兴,则又以村坊小曲为之,本无宫调,亦罕节奏,徒取其畸农、市女顺口可歌而已。”[38]然而其论述过程仍是从唐诗、宋词一脉梳理下来,实际并未脱离将戏曲归为诗、乐的论述模式。且此论仅针对南戏,实际上也默认了将北曲杂剧视为诗体文学的传统看法。至明后期,关于戏曲民间源流的认识更加深入。凌濛初为戏曲寻找了三个源头:古乐府、教坊供应、勾栏演出。“元曲源流古乐府之体,故方言、常语,沓而成章,着不得一毫故实”[39],“盖传奇初时本自教坊供应,此外止有上台构栏,故曲白皆不为深奥”[40]。三个源头中,勾栏演出纯粹属于民间,乐府有着民间的根基,教坊则是半官方半民间的性质。主张戏曲起源于民间,就否认了戏曲源流于古民歌、《诗经》之论,也否认了戏曲的本质为文学、音乐的基本判断,这显示出晚明戏曲家全新的审视视角,是晚明曲家对戏曲本体特征最直接、最具有颠覆意义的求索。

其次,从接受而言,戏曲的语言应当浅近,是因为其主要受众是文化程度不高的普通民众。《南词叙录》云:“曲本取于感发人心,歌之使奴、童、妇、女皆喻,乃为得体。”[41]凌濛初云:“使上而御前,下而愚民,取其一听而无不了然快意。”[42]至清,李渔不仅以戏曲接受群体是下层民众为由要求戏曲语言浅近本色,而且明确提出戏曲是专为下层民众而设的艺术形式:“因愚夫愚妇识字知书者少,劝使为善,诫使勿恶,其道无由,故设此种文词。”[43]由此,戏曲批评家便在起源和接受两个方面同时确定了戏曲的民间属性。

对戏曲再现性的认识,也有批评骈绮派戏曲内涵。骈绮派戏曲作家为彰显学识,大量使用典故、点缀辞华,以至于戏曲作品中文化程度低下的人物亦满口辞章。这种现象在明中期就已引起注意,如徐渭评《昆仑奴》云:“向来昆仑曲白并太文,太用深学问,便把他埋意思不对。”[44]可见徐渭已然意识到骈俪的戏曲语言与叙事的冲突。明后期,戏曲批评家表现出更激烈的态度,如凌濛初云:“花面丫头,长脚髯奴,无不命词博奥,子史演通,何彼时比屋皆康成之婢,方回之奴也?”[45]另一方面,他们也明确地提出了戏曲要再现其所搬演故事的要求,如臧懋循称:“行家者,随所妆演,无不摹拟曲尽,宛若身当其处,而几忘其事之乌有。”[46]孟称舜将这种要求总结为“因事以造形,随物而赋象”[47]。再现性是叙事文学相对于抒情文学的区别性特征。虽然此命题仍属文学领域,但戏曲往往被置于抒情文学之下,而非叙事文学。因此,关于戏曲再现性的认识仍具有使戏曲突破诗词藩篱以确定自身艺术特征的积极意义。

对于戏曲当场性的认识最初也与戏曲语言有关。戏曲批评家提出戏曲的语言应当浅近,又一原因是戏曲需要当场演出。如徐复祚云:“文章且不可涩,况乐府出于优伶之口,又于当筵之耳。”[48]此论虽有所依傍,但道出了戏曲需要当场演出的本质属性。只注重语言修饰而不顾戏曲演出需要的作品被戏曲批评家称为“案头之书”,是明后期戏曲批评家纷纷指摘的对象,如臧懋循说:“夫既谓之曲矣,而不可奏于筵上,则又安取彼哉?”[49]“案头之书”与“场上之曲”严格对立,说明戏曲家充分认识到戏曲的当场性。当场性是一切舞台艺术的本质属性,这一属性的确认,意味着戏曲的核心要素得到了认同,戏曲的本体自觉于是到达新的高度。至清初,李渔已经将当场演出作为戏曲创作的核心目的,提出“填词之设,专为登场”[50]。其作《闲情偶寄》设“演习部”,与“词曲部”并列。词曲部专论戏曲的文本创作,“演习部”则属导演论,专论选曲、教习等方面内容。可见,在李渔看来,戏曲的舞台演出已具有和文本创作相同的重要性。由此,戏曲家对于戏曲的关照便从文本延伸至舞台,戏曲也就在文学之外真正有了自身的独特领域。

四、对文、乐特征的融合

融合是戏曲自身的艺术特征得到认可之后,戏曲批评家们保留并且吸纳文学、音乐的艺术特征,使之为戏曲整体艺术效果服务、成为戏曲有机成分的过程。

就文学而言,戏曲源自文学的功能性特征全部保留了下来。元至明初,戏曲批评家出于为戏曲争取生存空间的目的大力强调戏曲有补于世教;明中期,在文学复古运动的背景下,这种倾向有所强化。明后期戏曲的本体特征陆续被发现和认可,但戏曲批评家并没有抛弃对戏曲风教功能的论述,甚至他们认为因为有更好的感人效果,戏曲的风教功能相较于传统诗文有过之而无不及:“曲之中有言夫忠孝节义,可忻可敬之事者焉,则虽呆童愚妇见之,无不击节而忭舞;有言奸邪淫匿、可怒可杀之事者焉,则虽呆童愚妇见之,无不耻笑而唾詈。自古感人之深而动人之切,无过于曲也。”[51]至清,关于戏曲风教功能的论述更加深入,如李渔认为戏曲的主要作用就是劝诫不识字的下层民众,“因愚夫愚妇识字知书者少,劝使为善,诫使勿恶,其道无由,故设此种文词”[52]。又如毛奇龄从传播的角度进一步论述戏曲在风教功能上的优越性,云:“传奇、杂剧登场爨演,较之咏叹之播扬感发尤捷,故予每欲以近代轶事或有裨于世而不尽传者,皆假是法以传之。”[53]

抒情言志功能也是早期戏曲家将戏曲归入文学范畴的重要依据,后来此功能亦得到了保留和发扬。明中期,在心学的影响下的戏曲批评家大力强调戏曲的抒情言志功能,并且认为在抒情言志方面,戏曲远胜于传统诗文,如徐渭云:“至兴则文固不若宾,康不胜俚也。”[54]并且由此形成了“夺他人之酒杯,浇自己之垒块”[55]的独特表述。明后期,心学影响更盛,“情”被推上了更高的高度,甚至被认定为人的本质,“人而无情,不至于人矣”[56]。因此戏曲的抒情功能也受到了更多的重视,如孟称舜在选编《古今名剧合选》时说:“予此选去取颇严,然以辞足达情为最。”将表达情感作为了选刊戏曲的首要标准。明末清初,“垒块”说大行其道,吴伟业、钱谦益、李渔等人均对此有所论述,这有明清鼎革之外部因素的影响,但更重要的是内部因素,亦即戏曲批评家对戏曲抒情功能的一贯认同。

其次,源于文学的形式特征,在经历了一系列争论后,最终也被纳入戏曲本身。前文已论,明中期戏曲领域存在太过强调戏曲语言的“琢句之工,使事之美”的倾向,使戏曲作品陷入艰深难解的困境。明后期,一些戏曲家出于反对文雅曲风,刻意追求俚俗的语言风格,这对戏曲同样是不健康的,于是也引起了批评。如凌濛初评沈璟云:“以鄙俚可笑为不施脂粉,以生梗雉率为出之天然,较之套词故实一派,反觉雅俗悬殊。使伯龙、禹金辈见之,益当千金自享家帚矣。”[57]同时,也因为戏曲创作和批评的主体仍为传统文人,他们不可避免地将自身的审美意趣投射于戏曲之上。所以戏曲语言“雅”的一端也逐渐为戏曲批评家所接受和认同。王骥德对此解释道:“文人学士,积习未忘,不胜其靡,此体遂不能废,犹古六朝之于秦、汉也。大抵纯用本色,亦觉寂寥;纯用文调,复伤雕镂。”[58]

戏曲语言的雅俗之辨形成了作为民间艺术传统的浅俗风格和作为文人意趣的藻丽风格兼容并存的势态,也同时引出了新的问题,即在具体的戏曲创作中应当何时用雅,何时用俗?明代戏曲批评家对此往往采取了回避的态度。如《南词叙录》云:“填词如作唐诗,文既不可,俗又不可。自有一种妙处,要在人领解妙悟,未可言传。”[59]王骥德亦云:“雅俗浅深之辨,介在渺茫,又在善用才者酌之而已。”[60]至清,具体解决方案才最终被提出。李渔将戏曲语言的深浅与脚色联系起来,提出:“极粗极俗之语,未尝不入填词,但宜从脚色起见。如在花面口中,则惟恐不粗不俗,一涉生旦之曲,便宜斟酌其词。”[61]徐大椿深入到故事层面,认为语言的俗与雅,当根据人物的身份而定,“如演朝廷文墨之辈,则词语仍不妨稍近藻绘,乃不失口气,若演街巷村野之事,则铺述竟作方言可也”[62]。由此,戏曲语言文雅的一端最终成为戏曲艺术特征不可或缺的成分。

就音乐而言,早期音乐本位的戏曲批评家往往单独强调音乐的独立审美价值,如朱权、何良俊、沈璟等人。他们高举“乐与政通”的旗帜,期冀将戏曲纳入古代雅乐的轨迹之中,并极力构建戏曲的音律论,提升戏曲音乐的审美属性。这种倾向被推向极端的结果是全然不顾及戏曲其他方面的特性和整体审美效果,形成“宁使时人不鉴赏,无使人挠喉捩嗓”[63]的极端观点。汤沈之争发生以后,戏曲批评家逐渐意识到这种立场的偏狭,于是他们在强调戏曲音乐属性之时,往往要求音律要服务于戏曲的整体表现,如王骥德云:“又用宫调,须称事之悲欢苦乐。”[64]这就要求宫调的使用服务于叙事,相较于传统的宫调声情说而言已是极大的进步。至清,徐大椿又提出唱曲要根据脚色以及人物性格唱出不同的声情,指出表演者应当设身处地领会所扮演人物的性情,而不应仅仅按照腔调机械地唱:“唱者先设身处地,摹仿其人之性情气象,宛若其人之自述其语,然后其形容逼真,使听者心会神怡,若亲对其人,而忘其为度曲矣。”[65]如此,戏曲中的音乐也被确定为辅助表现的手段。

除了熔铸文学与音乐的特征于戏曲,戏曲批评家还从理论上认同了不以场上演出为目的,专供案头阅读的案头戏曲。在明后期,对于“案头之书”的态度,大略分为两类,其一是全然否定,如臧懋循称:“夫既谓之曲矣,而不可奏于筵上,则又安取彼哉?”[66]其二是案头、场上两可,案头为次,如王骥德云:“辞藻工,句意妙,如不谐里耳,为案头之书,已落第二义。”[67]晚明清初,关于案头曲与场上曲的争论主要围绕汤显祖的《临川四梦》进行,是汤沈之争的余绪。针对吴江派曲家为方便场上演出而改动《四梦》,临川派曲家坚持保存汤显祖原文,以保证其案头阅读的效果,如毛暎云:“臧晋叔先生删削原本,以便登场,未免有截鹤续凫之叹。欲备案头完璧,用存玉茗全编。”[68]也有曲家试图调和二者的矛盾,如钮少雅不动《牡丹亭》的文字,而将其曲牌改换,以“犯调”的形式以使其合律。这种调和对单个戏曲作品而言是有效的,但对于整体的戏曲现象来说却于事无补,因为不可能每一部案头戏曲都像《牡丹亭》一样引起广泛关注,并且有人为之作音律上的调和。入清后,随着大批专供案头阅读的戏曲作品相继出现,案头戏曲事实上发展成为一种不可忽视的现象,并有与场上戏曲并驾齐驱之势,于是注重场上演出的戏曲批评家也在理论上承认并且接受了案头阅读的接受方式,如李渔称:“圣叹之评《西厢》,可谓晰毛辨发,穷幽极微,无复有遗议于其间矣。然以予论之,圣叹所评,乃文人把玩之《西厢》,非优人搬弄之《西厢》也。”[69]可见此时案头阅读已不再为注重场上演出的戏曲家所排斥。继而,他们又进一步承认了专为案头阅读而作的戏曲作品,如朱禄建云:“今人之词曲有二:有案头,有场上。”[70]如此,案头戏曲遂在理论上确立了自身的合法性。承认案头戏曲是戏曲的一种,既保留了文学与戏曲的交叉领域,也扩大了戏曲的边界,是我国古代特定文化环境中,戏曲批评家对戏曲本体特征的拓展与延伸。

融合文学、音乐特征于戏曲之中,是对文学、音乐“否定之否定”的辩证过程。由此,文学与音乐不再是统摄戏曲的上位概念,而成为构成戏曲整体艺术效果的有机成分。戏曲附属于文学与音乐的偏狭认识,转向了戏曲应当兼具文学性与音乐性的综合认识。戏曲也就兼具了舞台表演、文学、音乐等多重审美维度。从中也可见出中西文艺理论的差异。西方古典理论往往倾向于找出某种区别性特征,以区分不同的艺术类型,并且力争做到种类分明。如古希腊时期亚里士多德就以是否模仿为标准严格区分了诗和韵文写作的医学及自然哲学著作,又从模仿的媒介、对象和方法角度区分了史诗、悲剧、喜剧等种种不同的艺术形式。[71]西方现代艺术理论则更加极端,他们试图将艺术的媒介定义为艺术的独特属性,将这种单一的媒介特性视为艺术独立性的标志,并排除一切其他媒介及其伴随的艺术效果。如格林伯格说:“每一种艺术独特而又恰当的能力范围正好与其媒介的性质中所有独特的东西一致。于是自我批判的任务成了要从每一种艺术的特殊效果中排除任何可能从别的艺术媒介中借来的或经由别的艺术媒介而获得的效果。因此,每一种艺术都将成为‘纯粹的’,并在‘纯粹性’中找到其品质标准及其独立性的保证。‘纯粹性’意味着自我界定,而艺术中的自我批判则成为一种强烈的自我界定。”[72]中国古代文艺理论虽也强调区分,但在区分的基础上,又往往尽量保留相通、共生的空间,从而扩大某种艺术的领域,以期满足不同受众的接受需求,如乐府自魏晋起便一直被保留为诗与乐的共生领域。中国古代戏曲批评是中国古代文化艺术背景下的产物,理所当然地保留了这种既区别又共生的特征。

余 论

需要特别指出的是,求同、辨异、确立、融合四个阶段,在逻辑上前后相继,但在时间维度上并不具有纯粹的先后关系。求同过程几乎贯穿整个戏曲批评史,虽有盛衰之分,却从未消绝。辨异和确立都于明中期嘉靖年间出现,万历以后获得发展,时间上几乎重合。融合阶段起点稍晚,于万历朝以后才初见端倪,然其时前三个阶段也都并未结束。因此,在时间维度上,四个阶段只有出现先后的差别,而在出现之后,则处于同时存在、并行发展的态势。

经过四个阶段的探索,戏曲的本体自觉已做好了充足的准备。然而令人遗憾的是,终元明清三代,这一进程也未能最终完成。只有承认戏曲独立于文学、音乐,是与二者平行的艺术形式,只有承认剧本、表演、音乐、美术等方方面面都是戏曲的构成成分,亦即只有承认戏曲是一门综合艺术,而不单独以某一区别性特征作以界定,戏曲的本体自觉才算最终完成。尽管古代戏曲批评家确定了戏曲的种种特性,也确定了戏曲自身的领域与边界,但他们仍保持着一种惯性,将戏曲与文学、音乐同一而论,而不是将其视为一门独立艺术。即便如李渔一般明确区分了戏曲本文创作和舞台演出的曲家,亦是如此。究其原因,大略有三:其一是在古代政体与思想的框架下,戏曲仍有借文学、音乐之名以求得庇护的需求;其二是文人戏曲家接受戏曲的途径很大程度上仍是文本阅读,因而他们很容易停留在剧本文学的阶段,无法全面考察戏曲的属性;其三是思维方式上,古人的统一意识远大于区分意识,即便他们认识到戏曲需要场上演出,但更愿意将演出视为对文本的演绎,亦即将戏曲表演视为剧本文学的延伸。因此,只有在戏曲无需借文学、音乐之名求得庇护的现代社会中,在学科分类高度精密化的现代学术环境中,戏曲的本体自觉才有可能最终完成。

注释:

[1]陈军:《“一代有一代之文学”观与戏曲身份认同》,《云南大学师范学院学报(哲学社会科学版)》2005年第6期。

[2]徐渭:《徐渭集》,中华书局1983年版,第491页。

[3]王世贞:《艺苑卮言》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第511页。

[4]王骥德:《曲律》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第9页。

[5]胡祗遹:《赠宋氏序》,《历代曲话汇编》唐宋元编,俞为民、孙蓉蓉编,黄山书社2005年版,第217页。

[6]朱有燉:《豹子和尚自还俗引》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第193页。

[7]何良俊:《四友斋从说》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第464页;孟称舜:《古今词统序》,《中国古代戏曲序跋集》,中国戏剧出版社1990年版,第203页。

[8]李贽:《童心说》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第538页。

[9]徐渭:《徐渭集》,中华书局1983年版,第491页。

[10]尤侗:《叶九来乐府序》,《历代曲话汇编》清代编第1集,俞为民、孙蓉蓉编,黄山书社2008年版,第457页;吴伟业:《北词广正谱序》,《历代曲话汇编》清代编第1集,俞为民、孙蓉蓉编,黄山书社2008年版,第205页。

[11]李渔:《名词胜选序》,《历代曲话汇编》清代编第1集,俞为民、孙蓉蓉编,黄山书社2008年版,第343页。

[12]孟称舜:《古今词统序》,《中国古代戏曲序跋集》,中国戏剧出版社1990年版,第203页。

[13]毛声山:《第七才子琵琶记·参论》,《历代曲话汇编》清代编第1集,俞为民、孙蓉蓉编,黄山书社2008年版,第489页。

[14]王易:《乐府通论》,文化艺术出版社2018年版,第11页。

[15]俞彦:《爰园词话》,《词话丛编》,唐圭璋编,中华书局1986年版,第397页。

[16]周德清:《中原音韵》,《历代曲话汇编》唐宋元编,俞为民、孙蓉蓉编,黄山书社2005年版,第229页。

[17]朱有燉:《搊搜判官乔断鬼引》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第202页。

[18]邱濬:《五伦全备记》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第212页。

[19]李贽:《读律肤说》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第539页。

[20]闵光瑜:《邯郸梦记小引》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第437页。

[21]朱权:《太和正音谱》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第39页。

[22]朱权:《太和正音谱》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第40页。

[23]王骥德:《曲律》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第108页。

[24]王世贞:《艺苑卮言》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第518页。

[25]李开先:《西野春游词序》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第412页。

[26]徐复祚:《三家村老曲谈》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第259页。

[27]李渔:《闲情偶寄》,《历代曲话汇编》清代编第1集,俞为民、孙蓉蓉编,黄山书社2008年版,第254页。

[28]徐大椿:《乐府传声》,《历代曲话汇编》清代编第2集,俞为民、孙蓉蓉编,黄山书社2008年版,第57页。

[29]沈德符:《顾曲杂言》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第71页。

[30]徐复祚:《三家村老曲谈》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第254页。

[31]黄周星:《制词枝语》,《历代曲话汇编》清代编第1集,俞为民、孙蓉蓉编,黄山书社2008年版,第223页。

[32]王骥德:《曲律》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第62页。

[33]徐渭:《南词叙录》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第485页。

[34]王骥德:《曲律》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第120页。

[35]何良俊:《四友斋从说》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第470页。

[36]汤显祖:《答孙俟居》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第611页。

[37]毛暎:《题牡丹亭记》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第449页。

[38]徐渭:《南词叙录》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第483页。

[39]凌濛初:《谭曲杂札》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第190页。

[40]凌濛初:《谭曲杂札》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第194页。

[41]徐渭:《南词叙录》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第486页。

[42]凌濛初:《谭曲杂札》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第195页。

[43]李渔:《闲情偶寄》,《历代曲话汇编》清代编第1集,俞为民、孙蓉蓉编,黄山书社2008年版,第237页。

[44]梅鼎祚:《昆仑奴》,王骥德订,徐渭润并评,刘云龙校,明万历四十三年(1615)刻本,中国国家图书馆藏。

[45]凌濛初:《谭曲杂札》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第195页。

[46]臧懋循:《元曲选》,中华书局2021年版,第3页。

[47]孟称舜:《古今名剧合选自序》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第465页。

[48]徐复祚:《三家村老曲谈》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第259页。

[49]臧懋循:《玉茗堂传奇引》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第622页。

[50]李渔:《闲情偶寄》,《历代曲话汇编》清代编第1集,俞为民、孙蓉蓉编,黄山书社2008年版,第292页。

[51]祁彪佳:《孟子塞五种曲序》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第689页。

[52]李渔:《闲情偶寄》,《历代曲话汇编》清代编第1集,俞为民、孙蓉蓉编,黄山书社2008年版,第237页。

[53]毛奇龄:《何孝子传奇引》,《历代曲话汇编》清代编第1集,俞为民、孙蓉蓉编,黄山书社2008年版,第606页。

[54]徐渭:《徐渭集》,中华书局1983年版,第491页。

[55]李贽:《杂说》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第536页。

[56]张琦:《衡曲麈谭》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第348页。

[57]凌濛初:《谭曲杂札》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第536页。

[58]王骥德:《曲律》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第80页。

[59]徐渭:《南词叙录》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第487页。

[60]王骥德:《曲律》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第80页。

[61]李渔:《闲情偶寄》,《历代曲话汇编》清代编第1集,俞为民、孙蓉蓉编,黄山书社2008年版,第251—252页。

[62]徐大椿:《乐府传声》,《历代曲话汇编》清代编第2集,俞为民、孙蓉蓉编,黄山书社2008年版,第57—58页。

[63]沈璟:《【商调·二郎神】论曲》,《历代曲话汇编》明代编第1集,俞为民、孙蓉蓉编,黄山书社2009年版,第726页。

[64]王骥德:《曲律》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第96页。

[65]徐大椿:《乐府传声》,《历代曲话汇编》清代编第2集,俞为民、孙蓉蓉编,黄山书社2008年版,第74页。

[66]臧懋循:《玉茗堂传奇引》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第622页。

[67]王骥德:《曲律》,《历代曲话汇编》明代编第2集,俞为民、孙蓉蓉编,黄山书社2009年版,第96页。

[68]毛暎:《牡丹亭凡例》,《历代曲话汇编》明代编第3集,俞为民、孙蓉蓉编,黄山书社2009年版,第450页。

[69]李渔:《闲情偶寄》,《历代曲话汇编》清代编第1集,俞为民、孙蓉蓉编,黄山书社2008年版,第291页。

[70]朱禄建:《缀白裘七集序》,《历代曲话汇编》清代编第3集,俞为民、孙蓉蓉编,黄山书社2008年版,第517页。

[71]亚里士多德:《诗学》,罗中梅译,商务印书馆1996年版,第27—28页。

[72]克莱门特·格林伯格:《现代主义绘画》,沈语冰译,《油画艺术》2019年第1期。

作者单位:南京大学文学院

原载于《南大戏剧论丛》2025年第2期

如需转载,请注明出处!

微信号 | NDXJLC

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-09-30 08:36:00 HTTP/1.1 GET : http://f.sjds.net/a/491282.html
  2. 运行时间 : 0.081090s [ 吞吐率:12.33req/s ] 内存消耗:4,454.48kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=c544b650d871c1b6b762fb26a273d7ea
  1. /www/wwwroot/f.sjds.net/public/index.php ( 0.79 KB )
  2. /www/wwwroot/f.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /www/wwwroot/f.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /www/wwwroot/f.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /www/wwwroot/f.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /www/wwwroot/f.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /www/wwwroot/f.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /www/wwwroot/f.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /www/wwwroot/f.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /www/wwwroot/f.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /www/wwwroot/f.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /www/wwwroot/f.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /www/wwwroot/f.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /www/wwwroot/f.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /www/wwwroot/f.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /www/wwwroot/f.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /www/wwwroot/f.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /www/wwwroot/f.sjds.net/app/provider.php ( 0.19 KB )
  23. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /www/wwwroot/f.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /www/wwwroot/f.sjds.net/app/common.php ( 0.03 KB )
  27. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /www/wwwroot/f.sjds.net/config/app.php ( 0.95 KB )
  30. /www/wwwroot/f.sjds.net/config/cache.php ( 0.78 KB )
  31. /www/wwwroot/f.sjds.net/config/console.php ( 0.23 KB )
  32. /www/wwwroot/f.sjds.net/config/cookie.php ( 0.56 KB )
  33. /www/wwwroot/f.sjds.net/config/database.php ( 2.48 KB )
  34. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /www/wwwroot/f.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /www/wwwroot/f.sjds.net/config/lang.php ( 0.91 KB )
  37. /www/wwwroot/f.sjds.net/config/log.php ( 1.35 KB )
  38. /www/wwwroot/f.sjds.net/config/middleware.php ( 0.19 KB )
  39. /www/wwwroot/f.sjds.net/config/route.php ( 1.89 KB )
  40. /www/wwwroot/f.sjds.net/config/session.php ( 0.57 KB )
  41. /www/wwwroot/f.sjds.net/config/trace.php ( 0.34 KB )
  42. /www/wwwroot/f.sjds.net/config/view.php ( 0.82 KB )
  43. /www/wwwroot/f.sjds.net/app/event.php ( 0.25 KB )
  44. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /www/wwwroot/f.sjds.net/app/service.php ( 0.13 KB )
  46. /www/wwwroot/f.sjds.net/app/AppService.php ( 0.26 KB )
  47. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /www/wwwroot/f.sjds.net/vendor/services.php ( 0.14 KB )
  53. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /www/wwwroot/f.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /www/wwwroot/f.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /www/wwwroot/f.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /www/wwwroot/f.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /www/wwwroot/f.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /www/wwwroot/f.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /www/wwwroot/f.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /www/wwwroot/f.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /www/wwwroot/f.sjds.net/app/Request.php ( 0.09 KB )
  84. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /www/wwwroot/f.sjds.net/app/middleware.php ( 0.25 KB )
  86. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /www/wwwroot/f.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /www/wwwroot/f.sjds.net/route/app.php ( 1.72 KB )
  100. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /www/wwwroot/f.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /www/wwwroot/f.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /www/wwwroot/f.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /www/wwwroot/f.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /www/wwwroot/f.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /www/wwwroot/f.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /www/wwwroot/f.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /www/wwwroot/f.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /www/wwwroot/f.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /www/wwwroot/f.sjds.net/runtime/temp/92ad25f387b49bf6b973ed96044c92bd.php ( 8.11 KB )
  140. /www/wwwroot/f.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000505s ] mysql:host=172.18.0.4;port=3306;dbname=f_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000639s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000367s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000360s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000550s ]
  6. SELECT * FROM `set` [ RunTime:0.000337s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000631s ]
  8. SELECT * FROM `article` WHERE `id` = 491282 LIMIT 1 [ RunTime:0.000538s ]
  9. UPDATE `article` SET `lasttime` = 1790728560 WHERE `id` = 491282 [ RunTime:0.001598s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000325s ]
  11. SELECT * FROM `article` WHERE `id` < 491282 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000423s ]
  12. SELECT * FROM `article` WHERE `id` > 491282 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000385s ]
  13. SELECT * FROM `article` WHERE `id` < 491282 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000580s ]
  14. SELECT * FROM `article` WHERE `id` < 491282 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000542s ]
  15. SELECT * FROM `article` WHERE `id` < 491282 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000660s ]
0.093608s