gv.3php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  1. .TH gv 3php "06 December 2024"
  2. .SH NAME
  3. gv_php - graph manipulation in php
  4. .SH SYNOPSIS
  5. #!/usr/bin/php
  6. .br
  7. <?
  8. .br
  9. include("gv.php")
  10. .br
  11. ...
  12. .br
  13. ?>
  14. .SH USAGE
  15. .SH INTRODUCTION
  16. .B gv_php
  17. is a dynamically loaded extension for
  18. .B php
  19. that provides access to the graph facilities of
  20. .B graphviz.
  21. .SH COMMANDS
  22. .TP
  23. \fBNew graphs\fR
  24. .br
  25. .TP
  26. New empty graph
  27. .br
  28. \fIgraph_handle\fR \fBgv::graph\fR \fI(name);\fR
  29. .br
  30. \fIgraph_handle\fR \fBgv::digraph\fR \fI(name);\fR
  31. .br
  32. \fIgraph_handle\fR \fBgv::strictgraph\fR \fI(name);\fR
  33. .br
  34. \fIgraph_handle\fR \fBgv::strictdigraph\fR \fI(name);\fR
  35. .br
  36. .TP
  37. New graph from a dot-syntax string or file
  38. .br
  39. \fIgraph_handle\fR \fBgv::readstring\fR \fI(string);\fR
  40. .br
  41. \fIgraph_handle\fR \fBgv::read\fR \fI(string filename);\fR
  42. .br
  43. \fIgraph_handle\fR \fBgv::read\fR \fI(channel);\fR
  44. .br
  45. .TP
  46. Add new subgraph to existing graph
  47. .br
  48. \fIgraph_handle\fR \fBgv::graph\fR \fI(graph_handle, name);\fR
  49. .br
  50. .TP
  51. \fBNew nodes\fR
  52. .br
  53. .TP
  54. Add new node to existing graph
  55. .br
  56. \fInode_handle\fR \fBgv::node\fR \fI(graph_handle, name);\fR
  57. .br
  58. .TP
  59. \fBNew edges\fR
  60. .br
  61. .TP
  62. Add new edge between existing nodes
  63. .br
  64. \fIedge_handle\fR \fBgv::edge\fR \fI(tail_node_handle, head_node_handle);\fR
  65. .br
  66. .TP
  67. Add a new edge between an existing tail node, and a named head node which will be induced in the graph if it doesn't already exist
  68. .br
  69. \fIedge_handle\fR \fBgv::edge\fR \fI(tail_node_handle, head_name);\fR
  70. .br
  71. .TP
  72. Add a new edge between an existing head node, and a named tail node which will be induced in the graph if it doesn't already exist
  73. .br
  74. \fIedge_handle\fR \fBgv::edge\fR \fI(tail_name, head_node_handle);\fR
  75. .br
  76. .TP
  77. Add a new edge between named tail and head nodes which will be induced in the graph if they don't already exist
  78. .br
  79. \fIedge_handle\fR \fBgv::edge\fR \fI(graph_handle, tail_name, head_name);\fR
  80. .br
  81. .TP
  82. \fBSetting attribute values\fR
  83. .br
  84. .TP
  85. Set value of named attribute of graph/node/edge - creating attribute if necessary
  86. .br
  87. \fIstring\fR \fBgv::setv\fR \fI(graph_handle, attr_name, attr_value);\fR
  88. .br
  89. \fIstring\fR \fBgv::setv\fR \fI(node_handle, attr_name, attr_value);\fR
  90. .br
  91. \fIstring\fR \fBgv::setv\fR \fI(edge_handle, attr_name, attr_value);\fR
  92. .br
  93. .TP
  94. Set value of existing attribute of graph/node/edge (using attribute handle)
  95. .br
  96. \fIstring\fR \fBgv::setv\fR \fI(graph_handle, attr_handle, attr_value);\fR
  97. .br
  98. \fIstring\fR \fBgv::setv\fR \fI(node_handle, attr_handle, attr_value);\fR
  99. .br
  100. \fIstring\fR \fBgv::setv\fR \fI(edge_handle, attr_handle, attr_value);\fR
  101. .br
  102. .TP
  103. \fBGetting attribute values\fR
  104. .br
  105. .TP
  106. Get value of named attribute of graph/node/edge
  107. .br
  108. \fIstring\fR \fBgv::getv\fR \fI(graph_handle, attr_name);\fR
  109. .br
  110. \fIstring\fR \fBgv::getv\fR \fI(node_handle, attr_name);\fR
  111. .br
  112. \fIstring\fR \fBgv::getv\fR \fI(edge_handle, attr_name);\fR
  113. .br
  114. .TP
  115. Get value of attribute of graph/node/edge (using attribute handle)
  116. .br
  117. \fIstring\fR \fBgv::getv\fR \fI(graph_handle, attr_handle);\fR
  118. .br
  119. \fIstring\fR \fBgv::getv\fR \fI(node_handle, attr_handle);\fR
  120. .br
  121. \fIstring\fR \fBgv::getv\fR \fI(edge_handle, attr_handle);\fR
  122. .br
  123. .TP
  124. \fBObtain names from handles\fR
  125. .br
  126. \fIstring\fR \fBgv::nameof\fR \fI(graph_handle);\fR
  127. .br
  128. \fIstring\fR \fBgv::nameof\fR \fI(node_handle);\fR
  129. .br
  130. \fIstring\fR \fBgv::nameof\fR \fI(attr_handle);\fR
  131. .br
  132. .TP
  133. \fBFind handles from names\fR
  134. .br
  135. \fIgraph_handle\fR \fBgv::findsubg\fR \fI(graph_handle, name);\fR
  136. .br
  137. \fInode_handle\fR \fBgv::findnode\fR \fI(graph_handle, name);\fR
  138. .br
  139. \fIedge_handle\fR \fBgv::findedge\fR \fI(tail_node_handle, head_node_handle);\fR
  140. .br
  141. \fIattribute_handle\fR \fBgv::findattr\fR \fI(graph_handle, name);\fR
  142. .br
  143. \fIattribute_handle\fR \fBgv::findattr\fR \fI(node_handle, name);\fR
  144. .br
  145. \fIattribute_handle\fR \fBgv::findattr\fR \fI(edge_handle, name);\fR
  146. .br
  147. .TP
  148. \fBMisc graph navigators returning handles\fR
  149. .br
  150. \fInode_handle\fR \fBgv::headof\fR \fI(edge_handle);\fR
  151. .br
  152. \fInode_handle\fR \fBgv::tailof\fR \fI(edge_handle);\fR
  153. .br
  154. \fIgraph_handle\fR \fBgv::graphof\fR \fI(graph_handle);\fR
  155. .br
  156. \fIgraph_handle\fR \fBgv::graphof\fR \fI(edge_handle);\fR
  157. .br
  158. \fIgraph_handle\fR \fBgv::graphof\fR \fI(node_handle);\fR
  159. .br
  160. \fIgraph_handle\fR \fBgv::rootof\fR \fI(graph_handle);\fR
  161. .br
  162. .TP
  163. \fBObtain handles of proto node/edge for setting default attribute values\fR
  164. .br
  165. \fInode_handle\fR \fBgv::protonode\fR \fI(graph_handle);\fR
  166. .br
  167. \fIedge_handle\fR \fBgv::protoedge\fR \fI(graph_handle);\fR
  168. .br
  169. .TP
  170. \fBIterators\fR
  171. .br
  172. .TP
  173. Iteration termination tests
  174. .br
  175. \fIbool\fR \fBgv::ok\fR \fI(graph_handle);\fR
  176. .br
  177. \fIbool\fR \fBgv::ok\fR \fI(node_handle);\fR
  178. .br
  179. \fIbool\fR \fBgv::ok\fR \fI(edge_handle);\fR
  180. .br
  181. \fIbool\fR \fBgv::ok\fR \fI(attr_handle);\fR
  182. .br
  183. .TP
  184. Iterate over subgraphs of a graph
  185. .br
  186. \fIgraph_handle\fR \fBgv::firstsubg\fR \fI(graph_handle);\fR
  187. .br
  188. \fIgraph_handle\fR \fBgv::nextsubg\fR \fI(graph_handle, subgraph_handle);\fR
  189. .br
  190. .TP
  191. Iterate over supergraphs of a graph (obscure and rarely useful)
  192. .br
  193. \fIgraph_handle\fR \fBgv::firstsupg\fR \fI(graph_handle);\fR
  194. .br
  195. \fIgraph_handle\fR \fBgv::nextsupg\fR \fI(graph_handle, subgraph_handle);\fR
  196. .br
  197. .TP
  198. Iterate over edges of a graph
  199. .br
  200. \fIedge_handle\fR \fBgv::firstedge\fR \fI(graph_handle);\fR
  201. .br
  202. \fIedge_handle\fR \fBgv::nextedge\fR \fI(graph_handle, edge_handle);\fR
  203. .br
  204. .TP
  205. Iterate over outedges of a graph
  206. .br
  207. \fIedge_handle\fR \fBgv::firstout\fR \fI(graph_handle);\fR
  208. .br
  209. \fIedge_handle\fR \fBgv::nextout\fR \fI(graph_handle, edge_handle);\fR
  210. .br
  211. .TP
  212. Iterate over edges of a node
  213. .br
  214. \fIedge_handle\fR \fBgv::firstedge\fR \fI(node_handle);\fR
  215. .br
  216. \fIedge_handle\fR \fBgv::nextedge\fR \fI(node_handle, edge_handle);\fR
  217. .br
  218. .TP
  219. Iterate over out-edges of a node
  220. .br
  221. \fIedge_handle\fR \fBgv::firstout\fR \fI(node_handle);\fR
  222. .br
  223. \fIedge_handle\fR \fBgv::nextout\fR \fI(node_handle, edge_handle);\fR
  224. .br
  225. .TP
  226. Iterate over head nodes reachable from out-edges of a node
  227. .br
  228. \fInode_handle\fR \fBgv::firsthead\fR \fI(node_handle);\fR
  229. .br
  230. \fInode_handle\fR \fBgv::nexthead\fR \fI(node_handle, head_node_handle);\fR
  231. .br
  232. .TP
  233. Iterate over in-edges of a graph
  234. .br
  235. \fIedge_handle\fR \fBgv::firstin\fR \fI(graph_handle);\fR
  236. .br
  237. \fIedge_handle\fR \fBgv::nextin\fR \fI(node_handle, edge_handle);\fR
  238. .br
  239. .TP
  240. Iterate over in-edges of a node
  241. .br
  242. \fIedge_handle\fR \fBgv::firstin\fR \fI(node_handle);\fR
  243. .br
  244. \fIedge_handle\fR \fBgv::nextin\fR \fI(graph_handle, edge_handle);\fR
  245. .br
  246. .TP
  247. Iterate over tail nodes reachable from in-edges of a node
  248. .br
  249. \fInode_handle\fR \fBgv::firsttail\fR \fI(node_handle);\fR
  250. .br
  251. \fInode_handle\fR \fBgv::nexttail\fR \fI(node_handle, tail_node_handle);\fR
  252. .br
  253. .TP
  254. Iterate over nodes of a graph
  255. .br
  256. \fInode_handle\fR \fBgv::firstnode\fR \fI(graph_handle);\fR
  257. .br
  258. \fInode_handle\fR \fBgv::nextnode\fR \fI(graph_handle, node_handle);\fR
  259. .br
  260. .TP
  261. Iterate over nodes of an edge
  262. .br
  263. \fInode_handle\fR \fBgv::firstnode\fR \fI(edge_handle);\fR
  264. .br
  265. \fInode_handle\fR \fBgv::nextnode\fR \fI(edge_handle, node_handle);\fR
  266. .br
  267. .TP
  268. Iterate over attributes of a graph
  269. .br
  270. \fIattribute_handle\fR \fBgv::firstattr\fR \fI(graph_handle);\fR
  271. .br
  272. \fIattribute_handle\fR \fBgv::nextattr\fR \fI(graph_handle, attr_handle);\fR
  273. .br
  274. .TP
  275. Iterate over attributes of an edge
  276. .br
  277. \fIattribute_handle\fR \fBgv::firstattr\fR \fI(edge_handle);\fR
  278. .br
  279. \fIattribute_handle\fR \fBgv::nextattr\fR \fI(edge_handle, attr_handle);\fR
  280. .br
  281. .TP
  282. Iterate over attributes of a node
  283. .br
  284. \fIattribute_handle\fR \fBgv::firstattr\fR \fI(node_handle);\fR
  285. .br
  286. \fIattribute_handle\fR \fBgv::nextattr\fR \fI(node_handle, attr_handle);\fR
  287. .br
  288. .TP
  289. \fBRemove graph objects\fR
  290. .br
  291. \fIbool\fR \fBgv::rm\fR \fI(graph_handle);\fR
  292. .br
  293. \fIbool\fR \fBgv::rm\fR \fI(node_handle);\fR
  294. .br
  295. \fIbool\fR \fBgv::rm\fR \fI(edge_handle);\fR
  296. .br
  297. .TP
  298. \fBLayout\fR
  299. .br
  300. .TP
  301. Annotate a graph with layout attributes and values using a specific layout engine
  302. .br
  303. \fIbool\fR \fBgv::layout\fR \fI(graph_handle, string engine);\fR
  304. .br
  305. .TP
  306. \fBRender\fR
  307. .br
  308. .TP
  309. Render a layout into attributes of the graph
  310. .br
  311. \fIbool\fR \fBgv::render\fR \fI(graph_handle);\fR
  312. .br
  313. .TP
  314. Render a layout to stdout
  315. .br
  316. \fIbool\fR \fBgv::render\fR \fI(graph_handle, string format);\fR
  317. .br
  318. .TP
  319. Render to an open file
  320. .br
  321. \fIbool\fR \fBgv::render\fR \fI(graph_handle, string format, channel fout);\fR
  322. .br
  323. .TP
  324. Render a layout to an unopened file by name
  325. .br
  326. \fIbool\fR \fBgv::render\fR \fI(graph_handle, string format, string filename);\fR
  327. .br
  328. .TP
  329. Render to a string result
  330. .br
  331. \fIstring\fR \fBgv::renderresult\fR \fI(graph_handle ing, string format);\fR
  332. .br
  333. \fBgv::renderresult\fR \fI(graph_handle, string format, string outdata);\fR
  334. .br
  335. .TP
  336. Render to an open channel
  337. .br
  338. \fIbool\fR \fBgv::renderchannel\fR \fI(graph_handle, string format, string channelname);\fR
  339. .br
  340. .TP
  341. Render a layout to a malloc'ed string, to be free'd by the caller
  342. .br
  343. .TP
  344. (deprecated - too easy to leak memory)
  345. .br
  346. .TP
  347. (still needed for "eval [gv::renderdata $G tk]" )
  348. .br
  349. \fIstring\fR \fBgv::renderdata\fR \fI(graph_handle, string format);\fR
  350. .br
  351. .TP
  352. Writing graph back to file
  353. .br
  354. \fIbool\fR \fBgv::write\fR \fI(graph_handle, string filename);\fR
  355. .br
  356. \fIbool\fR \fBgv::write\fR \fI(graph_handle, channel);\fR
  357. .br
  358. .TP
  359. Graph transformation tools
  360. .br
  361. \fIbool\fR \fBgv::tred\fR \fI(graph_handle);\fR
  362. .br
  363. .SH KEYWORDS
  364. graph, dot, neato, fdp, circo, twopi, php.